3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arr = []; $arr['One'] = 1; $arr['Two'] = 2; $arr['Three'] = 3; $arr['Four'] = 4; function generatePermutations($array) { $permutations = []; $pairs = []; $i = 0; foreach ($array as $key => $value) { foreach ($array as $key2 => $value2) { if ($key === $key2) continue; $permutations[] = [$key, $key2]; } array_shift($array); } foreach ($permutations as $key => $value) { foreach ($permutations as $key2=>$value2) { if (!in_array($value2[0], $value) && !in_array($value2[1], $value)) { $pairs[] = [$value, $value2]; } } array_shift($permutations); } return $pairs; } print_r(generatePermutations($arr));

preferences:
55.22 ms | 402 KiB | 5 Q