3v4l.org

run code in 300+ PHP versions simultaneously
<?php function &permuteUnique($items) { sort($items); $size = count($items); $return = array(); while (true) { $return[] = $items; $invAt = $size - 2; for (;;$invAt--) { if ($invAt < 0) { break 2; } if ($items[$invAt] < $items[$invAt + 1]) { break; } } $swap1Num = $items[$invAt]; $inv2At = $size - 1; while ($swap1Num >= $items[$inv2At]) { $inv2At--; } $items[$invAt] = $items[$inv2At]; $items[$inv2At] = $swap1Num; $reverse1 = $invAt + 1; $reverse2 = $size - 1; while ($reverse1 < $reverse2) { $temp = $items[$reverse1]; $items[$reverse1] = $items[$reverse2]; $items[$reverse2] = $temp; $reverse1++; $reverse2--; } } return $return; } permuteUnique(array(1,2,3,4,5)) ?>
Output for 4.3.0 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.24 - 5.5.35, 5.6.7 - 5.6.28, 7.0.0 - 7.0.20, 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.6

preferences:
267.48 ms | 406 KiB | 342 Q