php合并两个二维数组,如果两个二维数组的id值相等,则合并为一个新的数组?

数组一:Array([0]=>Array([id]=>1[name]=>test)[1]=>Array([id]=>2[name]=>test2)[2]=>Array([... 数组一:
Array
(
[0] => Array
(
[id] => 1
[name] => test
)
[1] => Array
(
[id] => 2
[name] => test2
)
[2] => Array
(
[id] => 3
[name] => test3
)
)
数组二:
Array
(
[0] => Array
(
[id] => 1
[subject] => subject
)
[1] => Array
(
[id] => 3
[subject] => subject3
)
)

合并后的数组三:
Array
(
[0] => Array
(
[id] => 1
[name] => test
[subject] => subject
)
[1] => Array
(
[id] => 2
[name] => test2
)
[2] => Array
(
[id] => 3
[name] => test3
[subject] => subject3
)
)
展开
 我来答
百度网友9308069
推荐于2018-04-26 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1797万
展开全部
id本应该是唯一性的键值,利用好就行。以下输出没有对id排序,因为觉得没必要。
需要时可以再排。
function mergeById(&$a,&$b){
$c=array();
foreach($a as $e) $c[$e['id']]=$e;
foreach($b as $e) $c[$e['id']]=isset($c[$e['id']])? $c[$e['id']]+$e : $e;
return $c;
}
$a=//数组一;
$b=//数组二;
var_dump(mergeById($b,$a));
===========
array
1 =>
array
'id' => int 1
'name' => string 'test' (length=4)
'subject' => string 'subject' (length=7)
2 =>
array
'id' => int 2
'name' => string 'test2' (length=5)
3 =>
array
'id' => int 3
'name' => string 'test3' (length=5)
'subject' => string 'subject3' (length=8)
手机用户78288
2011-10-30 · TA获得超过184个赞
知道答主
回答量:128
采纳率:0%
帮助的人:50.1万
展开全部
<?php $arr5=array("a","b","c"); $arr5=array("c","d","e"); $myarray=array_merge($arr1,$arr1); print_r($myarray); $myarray=array_unique($myarray); print_r($myarray); ?> gСcㄔ◥k{圈yq
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式