3v4l.org

run code in 300+ PHP versions simultaneously
<?php function calculateRoutes($points){ //our output array $out = array(); //reset the index of our points to ensure they are 0 to N-1 $points = array_values($points); //loop over the points once for($i=0; $i<count($points) - 1; $i++){ //loop over the points again, offset by 1 for($j=$i+1; $j<count($points); $j++){ //add to our output array the two points $out[] = array($points[$i], $points[$j]); } } //return the final result return $out; } $points = array('A', 'B', 'C', 'D'); $routes = calculateRoutes($points); print_r($routes);
Output for 5.6.0 - 5.6.40, 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.19, 8.3.0 - 8.3.7
Array ( [0] => Array ( [0] => A [1] => B ) [1] => Array ( [0] => A [1] => C ) [2] => Array ( [0] => A [1] => D ) [3] => Array ( [0] => B [1] => C ) [4] => Array ( [0] => B [1] => D ) [5] => Array ( [0] => C [1] => D ) )

preferences:
231.75 ms | 405 KiB | 293 Q