php将两个数组相同的key合并到一个数组
2017-11-22 14:21
507 查看
$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'
)
);
1. 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);
2.
$tempArr = array();foreach($arr2 as $item) $tempArr[$item['id']] = $item['shop_name'];foreach($arr as $k => $v) { if(array_key_exists($v['id'], $tempArr)) { $arr[$k]['shop_name'] = $tempArr[$v['id']]; } else { $arr[$k]['shop_name'] = ''; }}$newArr = $arr;3.
$tmp = '';foreach ($arr2 as $k) { $tmp[$k['id']] = $k; }foreach ($arr as &$v) { $sn = $tmp[$v['id']]['shop_name']; $sn = $sn ? $sn :''; $v['shop_name'] = $sn;}var_dump($arr);?>4.$shop_name = array_column($arr2, 'shop_name', 'id');//方便减少foreach
foreach($arr as $key => $item) { $exist = array_key_exists($item['id'], $shop_name); $arr[$key]['shop_name'] = $exist ? $shop_name[$item['id']] : '';}print_r($arr);
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'
)
);
1. 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);
2.
$tempArr = array();foreach($arr2 as $item) $tempArr[$item['id']] = $item['shop_name'];foreach($arr as $k => $v) { if(array_key_exists($v['id'], $tempArr)) { $arr[$k]['shop_name'] = $tempArr[$v['id']]; } else { $arr[$k]['shop_name'] = ''; }}$newArr = $arr;3.
$tmp = '';foreach ($arr2 as $k) { $tmp[$k['id']] = $k; }foreach ($arr as &$v) { $sn = $tmp[$v['id']]['shop_name']; $sn = $sn ? $sn :''; $v['shop_name'] = $sn;}var_dump($arr);?>4.$shop_name = array_column($arr2, 'shop_name', 'id');//方便减少foreach
foreach($arr as $key => $item) { $exist = array_key_exists($item['id'], $shop_name); $arr[$key]['shop_name'] = $exist ? $shop_name[$item['id']] : '';}print_r($arr);
相关文章推荐
- php将两个不同长度数组相同的key合并到一个数组,不同的key也合并进去
- php将两个数组相同的key合并到一个数组
- 累加两个php数组,键相同的累加,不同的合并
- php数组练习之----查询数组中某key 的键值相同的个数、数组的格式转换、合并数组
- PHP将二维数组某一个字段相同的数组合并起来的方法
- 怎么把两个数组合并成一个php
- PHP 将两个一维数组合并到一个二维数组
- PHP将二维数组某一个字段相同的数组合并起来的方法
- PHP将两个数组合并成一个数组
- .net 合并两个数组为一个新的数组,两数组中相同的数据只存在一个
- php数组根据某一个键值,把相同键值的合并生成一个新的二维数组
- php两个数组合并在一起,根据两个数组相同的键进行排序(时间排序)
- php数组根据某一个键值,把相同键值的合并生成一个新的二维数组
- php 数组根据某一个键值,键值相同,则合并数组
- PHP将二维数组某一个字段相同的数组合并起来的方法
- php 数组分组 二维数组中,将某个键值相同的合并到一个数组中
- php数组合并两个数组(一个数组做键名,另一个做值)
- php使用array_combine合并两个数组为一个数组
- php数组根据某一个键值,把相同键值的合并生成一个新的二维数组
- PHP中获取我的城市列表,通过排序,通过A-Z的循环!数列出相同的首字母结果!,放到一个以A-Z为key的数组里面去,再返回我要的结果!