我有一个数组
array (
array (
'id_product' => '10',
'id_supplier' => '0'
),
array (
'id_product' => '11',
'id_supplier' => '0'
)
)
和第二个我要与第一个合并
array (
array (
'id_product' => '10',
'date' => '12/02/2014'
)
)
我需要
array (
array (
'id_product' => '10',
'id_supplier' => '0',
'date' => '12/02/2014'
),
array (
'id_product' => '11',
'id_supplier' => '0'
)
)
我知道我可以在一个中使用foreach并在第二个中查找现有值但是最有效的方法是什么?是否有这种混合的PHP功能?我查看了array_merge(),但似乎并不是我需要的
答案 0 :(得分:1)
在deceze评论之后,我最终使用了:
foreach ($array1 as $key => $value1) {
foreach ($array2 as $key2 => $value2)
if ($value1['id_product'] == $value2['id_product'])
{
$array1[$key] = array_merge($array1[$key], $array2[$key2]);
}
}
这个函数给了我相同的结果,感谢TBI,但是只有当我需要根据它们在$ a和$ b中的位置合并数组时,女巫才不是这样的
$result = array_replace_recursive(array1, array2)
答案 1 :(得分:0)
以下是完整的工作代码: -
$a = array (
array (
'id_product' => '10',
'id_supplier' => '0'
),
array (
'id_product' => '11',
'id_supplier' => '0'
)
);
$b = array (
array (
'id_product' => '10',
'date' => '12/02/2014'
)
);
function my_array_merge(&$array1, &$array2) {
$result = Array();
foreach($array1 as $key => &$value) {
$a++;
echo $a;
if(!empty($array2[$key]) && !empty($array2[$key])){
$result[$key] = array_merge($value, $array2[$key]);
}
if(empty($array2[$key])){
$result[$key] = $value;
}
}
return $result;
}
$array = my_array_merge($a, $b);
echo "<pre>";
print_r($array);
答案 2 :(得分:0)
试试这个 -
$a = array (
array (
'id_product' => '10',
'id_supplier' => '0'
),
array (
'id_product' => '11',
'id_supplier' => '0'
));
$b = array (
array (
'id_product' => '10',
'date' => '12/02/2014'
));
我使用了array_merge_recursive函数来获取组合数组: -
$c = array_replace_recursive($a, $b);
$ c 是您要展示的结果。