3v4l.org

run code in 300+ PHP versions simultaneously
<?php $digits = array(9,8,7,6,5,4,3,2,1); $primes = array(1,2,3,5,7,11); //will return 1:1 for 5:5. The function does not try to simplify them further function simplify(Int $num, Int $denom, Array $primes){ //going from high primes to low primes foreach(array_reverse($primes) as $prime) { if (($num % $prime == 0) && ($denom % $prime == 0)) { if ($num % $denom == 0) { return [intdiv($num,$denom)]; } elseif ($denom % $num == 0) { return [1,intdiv($denom,$num)]; //return simplify($num,$denom,$primes); } return [$num / $prime,$denom / $prime]; } } return [$num,$denom]; } function simplifyArrays(Array $arr1, Array $arr2, Array $primes) { for($i=0;$i<count($arr1);$i++){ $num1 = $arr1[$i]; for($j=0;$j<count($arr2);$j++){ $num2 = $arr2[$j]; echo "simplify: $num1 / $num2 = " . implode("/",simplify($num1,$num2,$primes)) . "\n"; } } } simplifyArrays($digits,$digits,$primes);
Output for 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
simplify: 9 / 9 = 1 simplify: 9 / 8 = 9/8 simplify: 9 / 7 = 9/7 simplify: 9 / 6 = 3/2 simplify: 9 / 5 = 9/5 simplify: 9 / 4 = 9/4 simplify: 9 / 3 = 3 simplify: 9 / 2 = 9/2 simplify: 9 / 1 = 9 simplify: 8 / 9 = 8/9 simplify: 8 / 8 = 1 simplify: 8 / 7 = 8/7 simplify: 8 / 6 = 4/3 simplify: 8 / 5 = 8/5 simplify: 8 / 4 = 2 simplify: 8 / 3 = 8/3 simplify: 8 / 2 = 4 simplify: 8 / 1 = 8 simplify: 7 / 9 = 7/9 simplify: 7 / 8 = 7/8 simplify: 7 / 7 = 1 simplify: 7 / 6 = 7/6 simplify: 7 / 5 = 7/5 simplify: 7 / 4 = 7/4 simplify: 7 / 3 = 7/3 simplify: 7 / 2 = 7/2 simplify: 7 / 1 = 7 simplify: 6 / 9 = 2/3 simplify: 6 / 8 = 3/4 simplify: 6 / 7 = 6/7 simplify: 6 / 6 = 1 simplify: 6 / 5 = 6/5 simplify: 6 / 4 = 3/2 simplify: 6 / 3 = 2 simplify: 6 / 2 = 3 simplify: 6 / 1 = 6 simplify: 5 / 9 = 5/9 simplify: 5 / 8 = 5/8 simplify: 5 / 7 = 5/7 simplify: 5 / 6 = 5/6 simplify: 5 / 5 = 1 simplify: 5 / 4 = 5/4 simplify: 5 / 3 = 5/3 simplify: 5 / 2 = 5/2 simplify: 5 / 1 = 5 simplify: 4 / 9 = 4/9 simplify: 4 / 8 = 1/2 simplify: 4 / 7 = 4/7 simplify: 4 / 6 = 2/3 simplify: 4 / 5 = 4/5 simplify: 4 / 4 = 1 simplify: 4 / 3 = 4/3 simplify: 4 / 2 = 2 simplify: 4 / 1 = 4 simplify: 3 / 9 = 1/3 simplify: 3 / 8 = 3/8 simplify: 3 / 7 = 3/7 simplify: 3 / 6 = 1/2 simplify: 3 / 5 = 3/5 simplify: 3 / 4 = 3/4 simplify: 3 / 3 = 1 simplify: 3 / 2 = 3/2 simplify: 3 / 1 = 3 simplify: 2 / 9 = 2/9 simplify: 2 / 8 = 1/4 simplify: 2 / 7 = 2/7 simplify: 2 / 6 = 1/3 simplify: 2 / 5 = 2/5 simplify: 2 / 4 = 1/2 simplify: 2 / 3 = 2/3 simplify: 2 / 2 = 1 simplify: 2 / 1 = 2 simplify: 1 / 9 = 1/9 simplify: 1 / 8 = 1/8 simplify: 1 / 7 = 1/7 simplify: 1 / 6 = 1/6 simplify: 1 / 5 = 1/5 simplify: 1 / 4 = 1/4 simplify: 1 / 3 = 1/3 simplify: 1 / 2 = 1/2 simplify: 1 / 1 = 1
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 simplify: 9 / 9 = 1 simplify: 9 / 8 = 9/8 simplify: 9 / 7 = 9/7 simplify: 9 / 6 = 3/2 simplify: 9 / 5 = 9/5 simplify: 9 / 4 = 9/4 simplify: 9 / 3 = 3 simplify: 9 / 2 = 9/2 simplify: 9 / 1 = 9 simplify: 8 / 9 = 8/9 simplify: 8 / 8 = 1 simplify: 8 / 7 = 8/7 simplify: 8 / 6 = 4/3 simplify: 8 / 5 = 8/5 simplify: 8 / 4 = 2 simplify: 8 / 3 = 8/3 simplify: 8 / 2 = 4 simplify: 8 / 1 = 8 simplify: 7 / 9 = 7/9 simplify: 7 / 8 = 7/8 simplify: 7 / 7 = 1 simplify: 7 / 6 = 7/6 simplify: 7 / 5 = 7/5 simplify: 7 / 4 = 7/4 simplify: 7 / 3 = 7/3 simplify: 7 / 2 = 7/2 simplify: 7 / 1 = 7 simplify: 6 / 9 = 2/3 simplify: 6 / 8 = 3/4 simplify: 6 / 7 = 6/7 simplify: 6 / 6 = 1 simplify: 6 / 5 = 6/5 simplify: 6 / 4 = 3/2 simplify: 6 / 3 = 2 simplify: 6 / 2 = 3 simplify: 6 / 1 = 6 simplify: 5 / 9 = 5/9 simplify: 5 / 8 = 5/8 simplify: 5 / 7 = 5/7 simplify: 5 / 6 = 5/6 simplify: 5 / 5 = 1 simplify: 5 / 4 = 5/4 simplify: 5 / 3 = 5/3 simplify: 5 / 2 = 5/2 simplify: 5 / 1 = 5 simplify: 4 / 9 = 4/9 simplify: 4 / 8 = 1/2 simplify: 4 / 7 = 4/7 simplify: 4 / 6 = 2/3 simplify: 4 / 5 = 4/5 simplify: 4 / 4 = 1 simplify: 4 / 3 = 4/3 simplify: 4 / 2 = 2 simplify: 4 / 1 = 4 simplify: 3 / 9 = 1/3 simplify: 3 / 8 = 3/8 simplify: 3 / 7 = 3/7 simplify: 3 / 6 = 1/2 simplify: 3 / 5 = 3/5 simplify: 3 / 4 = 3/4 simplify: 3 / 3 = 1 simplify: 3 / 2 = 3/2 simplify: 3 / 1 = 3 simplify: 2 / 9 = 2/9 simplify: 2 / 8 = 1/4 simplify: 2 / 7 = 2/7 simplify: 2 / 6 = 1/3 simplify: 2 / 5 = 2/5 simplify: 2 / 4 = 1/2 simplify: 2 / 3 = 2/3 simplify: 2 / 2 = 1 simplify: 2 / 1 = 2 simplify: 1 / 9 = 1/9 simplify: 1 / 8 = 1/8 simplify: 1 / 7 = 1/7 simplify: 1 / 6 = 1/6 simplify: 1 / 5 = 1/5 simplify: 1 / 4 = 1/4 simplify: 1 / 3 = 1/3 simplify: 1 / 2 = 1/2 simplify: 1 / 1 = 1
Output for 5.6.0 - 5.6.40
Catchable fatal error: Argument 1 passed to simplify() must be an instance of Int, integer given, called in /in/qmgJX on line 26 and defined in /in/qmgJX on line 6
Process exited with code 255.

preferences:
261.61 ms | 401 KiB | 287 Q