3v4l.org

run code in 300+ PHP versions simultaneously
<?php $a = [101 => 5, 109 => 100, 220 => 50, 231 => 45, 245 => 90]; $b = ['PRO' => 12, 'LOG' => 15, 'DEV' => 100]; $rest = 0; foreach ($a as &$value) { if ($value < $rest) { $rest -= $value; $value = 0; continue; } else { $value -= $rest; $rest = 0; } while ($value > 0 && key($b) !== null) { if ($value < current($b)) { $rest = current($b) - $value; $value = 0; } else { $value = $value - current($b); $rest = 0; } next($b); } } var_dump($a);
Output for 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.4, 8.3.6 - 8.3.26, 8.4.1 - 8.4.13
array(5) { [101]=> int(0) [109]=> int(0) [220]=> int(28) [231]=> int(45) [245]=> &int(90) }
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 array(5) { [101]=> int(0) [109]=> int(0) [220]=> int(28) [231]=> int(45) [245]=> &int(90) }

preferences:
144.28 ms | 408 KiB | 5 Q