PHP数组如何输出所有排列

Fra*_*sco -1 php arrays

给出一个数组

$array= ['apple','banana','coconut']
Run Code Online (Sandbox Code Playgroud)

我想输出

apple, banana
apple, coconut
banana, coconut
Run Code Online (Sandbox Code Playgroud)

不是任何反向组合,也不是我需要的 apple,banana,coconut

Bar*_*mar 5

那些不是排列; 排列是一个集合的重新排序(例如a,b,c,b,a,c,b,c,a).您要求的是该集合的2个元素的组合.

您可以使用嵌套循环来完成它.

$len = count($array);
for ($i = 0; $i < $len-1; $i++) {
    for ($j = $i+1; $j < $len; $j++) {
        echo $array[$i] . ", " . $array[$j] . "<br>";
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,内部循环从外部循环中的下一个元素开始.这可以确保您不会以相反的顺序获得前一对的重复 - 它总是将元素与其右侧的元素配对.