3v4l.org

run code in 300+ PHP versions simultaneously
<?php function sorter($array) { // find the key which doesn't have a matching value $unique = array_diff(array_keys($array), $array); $key = reset($unique); $value = $array[$key]; $result = array($key => $value); // follow the values backwards until the key matches the value while ($key != $value) { $key = $array[$key]; $value = $array[$key]; $result = array($key => $value) + $result; } return $result; } $main = array( 'lorem' => 'lorem', 'ipsum' => 'duis', 'sit' => 'adipiscing', 'duis' => 'sit', 'amet' => 'elit', 'consectetur' => 'lorem', 'adipiscing' => 'consectetur', 'eiusmod' => 'ipsum', 'labore' => 'eiusmod', 'dolore' => 'labore', 'magna' => 'dolore', 'aliqua' => 'amet', 'incididunt' => 'magna', 'tempor' => 'incididunt', 'sed' => 'tempor', 'elit' => 'sed', ); print_r(sorter($main));
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.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.4, 8.3.6 - 8.3.7
Array ( [lorem] => lorem [consectetur] => lorem [adipiscing] => consectetur [sit] => adipiscing [duis] => sit [ipsum] => duis [eiusmod] => ipsum [labore] => eiusmod [dolore] => labore [magna] => dolore [incididunt] => magna [tempor] => incididunt [sed] => tempor [elit] => sed [amet] => elit [aliqua] => amet )
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 ( [lorem] => lorem [consectetur] => lorem [adipiscing] => consectetur [sit] => adipiscing [duis] => sit [ipsum] => duis [eiusmod] => ipsum [labore] => eiusmod [dolore] => labore [magna] => dolore [incididunt] => magna [tempor] => incididunt [sed] => tempor [elit] => sed [amet] => elit [aliqua] => amet )

preferences:
188.01 ms | 402 KiB | 155 Q