- 37
- 0
如下两个数组 ,求一个最佳的合并方法
$arr_1 = [
['id'=>1,'cc'=>'dd','ee'=>'hh'],
['id'=>2,'cc'=>'gg','ee'=>'qq'],
['id'=>3,'cc'=>'yy','ee'=>'!!'],
];
$arr_2 = [
['id'=>2,'hh'=>'##','ll'=>'^^'],
['id'=>1,'hh'=>'@@','ll'=>'%%'],
['id'=>4,'hh'=>'$$','ll'=>'&&'],
];
$arr = [];
foreach ($arr_1 as $key => &$value) {
foreach ($arr_2 as $k => $item) {
if ($value['id'] === $item['id']) {
$temp = array_merge($value,$item);
$arr[] = $temp;
}
}
}
$temp_ids = array_column($arr, 'id');
$sub_1 = array_filter($arr_1,function($o) use ($temp_ids){
if (!in_array($o['id'], $temp_ids)) {
return true;
}
});
$sub_2 = array_filter($arr_2,function($i) use ($temp_ids){
if (!in_array($i['id'], $temp_ids)) {
return true;
}
});
$res = array_merge($arr,$sub_1,$sub_2);
echo json_encode($res);
exit;
结果
[{"id":1,"cc":"dd","ee":"hh","hh":"@@","ll":"%%"},{"id":2,"cc":"gg","ee":"qq","hh":"##","ll":"^^"},{"id":3,"cc":"yy","ee":"\uff01\uff01"},{"id":4,"hh":"$$","ll":"&&"}]
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
不想再這樣 普通会员 1楼
在PHP中,你可以使用array_merge()函数来合并两个已排序的数组。这个函数会合并两个数组中的所有元素,然后返回一个新的已排序的数组。
以下是一个例子:
```php // 定义两个已排序的数组 $array1 = array("apple", "banana", "cherry"); $array2 = array("apple", "banana", "date");
// 使用array_merge()函数合并两个数组 $merged_array = array_merge($array1, $array2);
// 打印合并后的数组 print_r($merged_array); ```
这将输出:
Array ( [0] => apple [1] => banana [2] => cherry [3] => date )在这个例子中,我们首先定义了两个已排序的数组。然后,我们使用array_merge()函数将这两个数组合并在一起,并返回一个新的已排序的数组。最后,我们打印出合并后的数组。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
