通过键合并两个数组

时间:2019-04-13 19:27:23

标签: php arrays

我有两个数组

$array_1 = array(
            array('name' => 'Jon', 'user' => 'Apple'),
            array('name' => 'Dave', 'user' => 'Windows')     
                );

$array_2 = array(
            array('name' => 'Jon', 'user' => ''), 
            array('name' => 'Jonson', 'user' => ''), 
            array('name' => 'Dave', 'user' => '')
        );

我需要得到这个:

$array_result = array(
            array('name' => 'Jon', 'user' => 'Apple'), 
            array('name' => 'Jonson', 'user' => ''), 
            array('name' => 'Dave', 'user' => 'Windows')
        );

我尝试过array_merge(),并尝试过滤数组array_filter(),但是找不到解决方案。我会非常感谢这个建议。

1 个答案:

答案 0 :(得分:2)

您可以将数组与array_columns第三个参数关联,然后使用array_replace_recursive来获取所需的更改。
可以选择使用array_values再次获取索引数组。

$array_1 = array_column($array_1, Null, "name");
$array_2 = array_column($array_2, Null, "name");


$result = array_values(array_replace_recursive($array_2, $array_1));

var_dump($result);

输出:

array(3) {
  [0]=>
  array(2) {
    ["name"]=>
    string(3) "Jon"
    ["user"]=>
    string(5) "Apple"
  }
  [1]=>
  array(2) {
    ["name"]=>
    string(6) "Jonson"
    ["user"]=>
    string(0) ""
  }
  [2]=>
  array(2) {
    ["name"]=>
    string(4) "Dave"
    ["user"]=>
    string(7) "Windows"
  }
}

https://3v4l.org/EcgFh