$example1 = array(3, 9, 5, 12);
$example2 = array(5, 4);
$example3 = array(8, 2, 4, 7, 3);
如何在不重复的情况下在这些数组元素之间进行一对一组合?
$example1
应该返回:
3 9
3 5
3 12
9 5
9 12
5 12
$example2:
5 4
$example3:
8 2
8 4
8 7
8 3
2 4
2 7
2 3
4 7
4 3
7 3
我试过了:
<?php
$example3 = array(8, 2, 4, 7, 3);
foreach ($example3 as $e) {
foreach ($example3 as $e2) {
if ($e != $e2) {
echo $e . ' ' . $e2 . "\n";
}
}
}
这让我回复:http://codepad.org/oHQTSy36
但排除重复的最佳方法是什么?
答案 0 :(得分:0)
几乎。但是在第二个循环中,你只需要选择原始数组的一部分。
array_slice功能在这里可能会有所帮助。
$example1 = array(3, 9, 5, 12);
for ($i = 0, $n = count($example1); $i < $n; $i++) {
foreach(array_slice($example1, $i+1) as $value) {
echo $example1[$i] . ' ' . $value . "\n";
}
}
答案 1 :(得分:0)
这是获得结果的另一种方式。
for($i=0;$i<count($example1);$i++)
{
for($j=$i;$j<count($example1);$j++)
{
if($example1[$i] != $example1[$j])
{
echo $example1[$i].'::'.$example1[$j].'<br>';
}
}
}