3v4l.org

run code in 300+ PHP versions simultaneously
<?php function qs($a) { $s = count($a); if($s < 2) { return $a; } $pv = ceil($s/2); $i = array_slice($a, $pv, 1, true); $k1 = array_keys($i); $k1 = $k1[0]; $v1 = array_values($i); $v1 = $v1[0]; unset($a[$k1]); $l = array(); $r = array(); foreach($a as $k => $v) { if($v <= $v1) { $l[$k] = $v; } else { $r[$k] = $v; } } return array_merge(qs($l), array($k1 => $v1), qs($r)); } $array = range(0, 100); shuffle($array); print_r($array); var_dump(qs($array));

preferences:
38.59 ms | 402 KiB | 5 Q