永发信息网

PHP 二维数组根据条件合并

答案:1  悬赏:70  手机版
解决时间 2021-03-11 04:13
$arr1=Array([0] => Array(
[fee] => 212.45
[system_single] => 0.00
[system_gid] => 30),
[1] => Array(
[fee] => 212.45
[system_single] => 0.00
[system_gid] => 26),
[2] => Array(
[fee] => 212.45
[system_single] => 0.00
[system_gid] => 10));
$arr2=Array([0] => Array(
[fee] => 212.45
[system_single] => 0.00
[system_gid] => 26),
[1] => Array(
[fee] => 212.45
[system_single] => 0.00
[system_gid] => 10),
[2] => Array(
[fee] => 212.45
[system_single] => 0.00
[system_gid] => 30));
二个二维数组,根据system_gid参数来判断,如果相等就把$arr2相等那条数组插到$arr1那条数据下。合并出来如$arr3 ,请大神支招,O(∩_∩)O谢谢!

$arr3=Array([0] => Array(
[fee] => 212.45
[system_single] => 0.00
[system_gid] => 30),
[1] => Array(
[fee] => 212.45
[system_single] => 0.00
[system_gid] => 30),
[2] => Array(
[fee] => 212.45
[system_single] => 0.00
[system_gid] => 26),
[3] => Array(
[fee] => 212.45
[system_single] => 0.00
[system_gid] => 26),
[4] => Array(
[fee] => 212.45
[system_single] => 0.00
[system_gid] => 10),
[5] => Array(
[fee] => 212.45
[system_single] => 0.00
[system_gid] => 10));
最佳答案
function mergById($arr1, $arr2, $id){
$tmp = array();
foreach($arr2 as $record){
$tmp[$record[$id]][] = $record;
}
$arr3 = array();
foreach($arr1 as $record){
$arr3[] = $record;
if(isset($tmp[$record[$id]])){
foreach($tmp[$record[$id]] as $sameIdRecord){
$arr3[] = $sameIdRecord;
}
}
}
return $arr3;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
开发路社区卫生站我想知道这个在什么地方
旗下营到呼市多少公里
五谷杂粮饮料的品牌有哪些?
万源明天天气预报,万源后天天气怎么样
【血浆的成分】血浆中的主要成分是.
为什么在高铁上,电信的网速会比联通和移动快
旺兴便利店地址有知道的么?有点事想过去
辐射4,我在steam购买了远港dlc。问下dlc是不
怎样提高自身职业道德
鑫明数控在哪里啊,我有事要去这个地方
单选题科学家不断培育良种的一个重要原因,是
锻炼肌肉想练突出来的筋
“黑云翻墨未遮山,白雨跳珠乱入船。”采用的
龙头代表什么含义
2011年最好看的日漫排行榜
推荐资讯
柳州到金秀去哪里坐车
集体企业属于国有企业吗 ?
我用10元在短信上购买了1G3天流量包,但是我
为什么胰高血糖素能促使肝糖原的水解,而不能
求eden诗音的搜狗皮肤
摩尔庄园怎么解小屋的锁
泰迪狗狗流鼻涕怎么办
锁骨有痣什么意思?
The future is ours to build什么意思
源鸿传媒地址在什么地方,想过去办事
用she和her造句
中建地产是什么字体
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?