我有两个数组
$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()
,但是找不到解决方案。我会非常感谢这个建议。
答案 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"
}
}