我有两个数组
First Array
(
[0] => Array
(
[352] => 1
[128] =>
[64] =>
[70] => 2
)
)
第二个数组是这样的:
Array
(
[0] => Array
(
[128] => 1.5
)
)
我想制作这样的最终数组。(我希望在此示例中将匹配存储到主数组中 128 - > 1.5 )我该怎么做。?
Array
(
[0] => Array
(
[352] => 1
[128] => 1.5
[64] =>
[70] => 2
)
)
这是我的数组变量:
print_r($listskilssresult);
print_r($listskilssresultmatching);
答案 0 :(得分:7)
$listskilssresult = [
[
352 => 1,
128 => '',
64 => '',
70 => 2
]
];
$listskilssresultmatching = [
[
128 => 1.5
]
];
print_r(array_replace_recursive($listskilssresult, $listskilssresultmatching));
打印:
Array
(
[0] => Array
(
[352] => 1
[128] => 1.5
[64] =>
[70] => 2
)
)
了解array_replace_recursive
和array_merge_recursive
here
答案 1 :(得分:2)
对于此解决方案,您必须使用array_merge()
内置的php函数。
语法:
$finalArray = array_merge($array1, $array2);
print_r($finalArray)
示例:
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
输出
Array
(
[color] => green
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)
答案 2 :(得分:1)
array_merge会为你完成这项工作:
array_merge($listskilssresult,$listskilssresultmatching)
答案 3 :(得分:1)
这是针对您的问题的。如果您想要更自动化的东西,您可以创建一个功能。但这会做你想要的:
@Dependent
如果没有找到匹配项(来自foreach语句),最后一个if语句会将第二个数组中的键+值添加到第一个数组中。如果您只想添加匹配的密钥,则可以删除该条件。
答案 4 :(得分:0)
array_replace_recursive是最好的解决方案!
$old_array = Array('my_index1' => Array('1' => 'A', '2' => 'B'), 'my_index2' => Array('1' => 'C', '2' => 'D'));
$new_array = Array('my_index2' => Array('2' => 'Z'));
$result = array_replace_recursive($old_array, $new_array);
//Result : Array('my_index1' => Array('1' => 'A', '2' => 'B'), 'my_index2' => Array('1' => 'C', '2' => 'Z'));