给出一个数组
$array= ['apple','banana','coconut']
我想输出
apple, banana apple, coconut banana, coconut
没有任何反向组合,也不需要apple,banana,coconut
答案 0 :(得分: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>";
}
}
请注意,内部循环从外部循环中的下一个元素开始。这样可以确保您不会以相反的顺序获得前一对的重复 - 它总是将元素与其右侧的元素配对。