php每个两个元素之间要有组成一个新的数组,不重复

weixin_41239009 2020-05-28 09:46:37

//初始数据
$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,
}
)


...全文
420 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
二尸兄 2020-06-06
  • 打赏
  • 举报
回复

//这就是排序啊,数组中任意两个元素之间都要对比一下 
//抄袭一下版主的 
$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);
下雨的声音丶 2020-05-29
  • 打赏
  • 举报
回复

$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);
死方法,应该有简单的
xuzuning 2020-05-29
  • 打赏
  • 举报
回复
$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
)

)

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧