3v4l.org

run code in 300+ PHP versions simultaneously
<?php // user input of years - note it must be numeric $ar = array(1944, 1674, 3021); // find max year of the input for 'dynamic' approach // note the unpacking of the array is not needed I do not think // but does work - check performance $maxCentury = max(...$ar); // round max century to -3 (closest 1000) $roundedCentury = round($maxCentury, -3); foreach($ar as $year): foreach(range(0, $maxCentury, 1000) as $century): if(round($year, -3) == $century): ?> <li> <?= $century; ?> <ul> <?= $year; ?> </ul> </li> <?php endif; endforeach; endforeach;
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
<li> 2000 <ul> 1944 </ul> </li> <li> 2000 <ul> 1674 </ul> </li> <li> 3000 <ul> 3021 </ul> </li>
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 <li> 2000 <ul> 1944 </ul> </li> <li> 2000 <ul> 1674 </ul> </li> <li> 3000 <ul> 3021 </ul> </li>

preferences:
238.46 ms | 402 KiB | 291 Q