21,887
社区成员
发帖
与我相关
我的任务
分享
//初始数据
$arr=array('A','B','C','D');
//如何操作能最终获得如下数组,顺序不一定如下,就是可以看做每两个个元素之间要有组成一个新的数组,不重复
$new_arr=array(
0=>{
0=>A,
1=>B,
},
1=>{
0=>A,
1=>C,
},
2=>{
0=>A,
1=>D,
},
3=>{
0=>B,
1=>C,
},
4=>{
0=>B,
1=>D,
},,
5=>{
0=>C,
1=>D,
}
)
//这就是排序啊,数组中任意两个元素之间都要对比一下
//抄袭一下版主的
$r = [];
$arr=array('A','B','C','D');
$num = count($arr);
for ($i=0;$i<$num; $i++) {
for($j=$num-1; $j>$i; $j--){
$r[] = [$arr[$i], $arr[$j]];
}
}
print_r($r);
$arr = ['A', 'B', 'C', 'D'];
$new_arr = [];
while (count($arr) > 1) {
$item = array_shift($arr);
foreach ($arr as $value) {
$new_arr[] = [$item, $value];
}
}
var_dump($new_arr);
死方法,应该有简单的$arr=array('A','B','C','D');
for($i=0;$i<count($arr);$i++){
for($j=$i+1;$j<count($arr);$j++)
$r[]=[$arr[$i], $arr[$j] ];
}
print_r($r);
Array
(
[0] => Array
(
[0] => A
[1] => B
)
[1] => Array
(
[0] => A
[1] => C
)
[2] => Array
(
[0] => A
[1] => D
)
[3] => Array
(
[0] => B
[1] => C
)
[4] => Array
(
[0] => B
[1] => D
)
[5] => Array
(
[0] => C
[1] => D
)
)