<?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;
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>