我正在尝试将同一列合并到两个不同的数组中, Array2是Array1的一部分,对于PartyName列的某些更新,我正在使用array_column从主array1提取该列,然后对array2进行一些修改,然后再次合并。 像
Array1:
Array
(
[0] => Array
(
[StorePartyId] => 10462791
[StoreId] => 4
[PartyName] => AMAR MEDICO
[PartyCode] => 6840
)
[1] => Array
(
[StorePartyId] => 10463839
[StoreId] => 4
[PartyName] => NEW SAVE MEDICINE SHOPEE
[PartyCode] => 8236
)
)
Array2:
Array
(
[0] => Array
(
[PartyName] => AMAR MEDICO_updated
)
[1] => Array
(
[PartyName] => NEW SAVE MEDICINE SHOPEE_updated
)
)
我可以通过互相循环来以编程方式合并这两个数组。 但寻找一些内置的PHP数组功能。 我尝试了array_merge函数,但无法解决此问题。
FinalArray
最终数组应如下图
Array
(
[0] => Array
(
[StorePartyId] => 10462791
[StoreId] => 4
[PartyName] => AMAR MEDICO_updated
[PartyCode] => 6840
)
[1] => Array
(
[StorePartyId] => 10463839
[StoreId] => 4
[PartyName] => NEW SAVE MEDICINE SHOPEE_updated
[PartyCode] => 8236
)
)
答案 0 :(得分:3)
使用array_replace_recursive替换递归数组。
array_replace_recursive($Main_array, $Replacements);
$new = array_replace_recursive($arr,$arr2);
返回:
array(2) {
[0]=>
array(4) {
["StorePartyId"]=>
int(10462791)
["StoreId"]=>
int(4)
["PartyName"]=>
string(19) "AMAR MEDICO_updated"
["PartyCode"]=>
int(6840)
}
[1]=>
array(4) {
["StorePartyId"]=>
int(10463839)
["StoreId"]=>
int(4)
["PartyName"]=>
string(32) "NEW SAVE MEDICINE SHOPEE_updated"
["PartyCode"]=>
int(8236)
}
}
答案 1 :(得分:0)
让我们假设
您当前的数据存储在$array1
中,更新的字段数据存储在$array2
foreach($array1 as $key=>&$arr){
if(isset($array2[$key])){
$arr=array_merge($arr,$array2[$key]);
}
}
在这里,我使用&
符号作为元素的传递引用。
现在$array1
是具有更新值的最终数组
答案 2 :(得分:-1)
我使用array_merge,它可以按您的意愿工作
$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge($a1,$a2));
结果:
Array ( [a] => red [b] => yellow [c] => blue )