php将两个数组相同的key合并到一个数组

Posted wrld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php将两个数组相同的key合并到一个数组相关的知识,希望对你有一定的参考价值。

php将两个数组相同的key合并到一个数组

$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‘
    )
 
);

 

PHP5.5支持一个很棒的函数array_column()非常适合干这个事情,具体请参考手册:http://cn2.php.net/manual/zh/function.array-column.php


$shop_name = array_column($arr2, ‘shop_name‘, ‘id‘);
foreach($arr as $key => $item) 
    $exist = array_key_exists($item[‘id‘], $shop_name);
    $arr[$key][‘shop_name‘] = $exist ? $shop_name[$item[‘id‘]] : ‘‘;

 

以上是关于php将两个数组相同的key合并到一个数组的主要内容,如果未能解决你的问题,请参考以下文章

javascript 数组对象根据相同属性值{key:value}合并两个对象

js 数组对象根据相同value的key合并两个对象

php当中,如何将数组合并成变量呢?

【php】合并多个数组并去掉相同的

如何将具有相同属性的对象合并到一个数组中?

PHP - 将两个数组(相同长度)合并为一个关联?