$arr = array(
array(
'id' => 1,
'user_name'=>'test1'
),
array(
'id' => 2,
'user_name'=>'test2'
),
array(
'id' => 3,
'user_name'=>'test3'
)
);
$arr2 = array(
array(
'id' => 1,
'shop_name'=>'shop1'
),
array(
'id' => 5,
'shop_name'=>'shop2'
),
array(
'id' => 3,
'shop_name'=>'shop3'
)
);
怎么根据2个数组id相同的一维数组,将$arr2的shop_name添加到$arr,如果没有相同的id,shop_name为空,形成如下数组:
$good_arr =array(
array(
'id' => 1,
'user_name'=>'test1',
'shop_name'=>'shop1'
),
array(
'id' => 2,
'user_name'=>'test2',
'shop_name'=>''
),
array(
'id' => 3,
'user_name'=>'test3',
'shop_name'=>'shop3'
)
);
我的方案:有更好的吗?O(∩_∩)O谢谢
/*foreach($arr as $key => &$value) {
$value['shop_name']='';
}
unset( $value );
*/
foreach($arr as $k2 =>&$v2) {
$v2['shop_name']='';
foreach($arr2 as $k =>$v) {
if($v2['id'] == $v['id']) {
$v2['shop_name'] = $v['shop_name'];
}
}
}
print_r($arr);
题主实在不好意思,上面这个回答我弄错了
array_merge
的用法,现在重写一个,已本机测试:btw
,我以前也喜欢写嵌套循环,因为逻辑比较简单,但是自从 @公子 指正后,我已经开始尽量避免这种效率极低的写法,希望答案能帮到题主!:)