PHP数组如何输出所有排列

时间:2016-11-08 01:04:04

标签: php arrays

给出一个数组

$array= ['apple','banana','coconut']

我想输出

apple, banana
apple, coconut
banana, coconut

没有任何反向组合,也不需要apple,banana,coconut

1 个答案:

答案 0 :(得分:5)

那些不是排列;排列是对集合的重新排序(例如a,b,cb,a,cb,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>";
    }
}

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