我有许多数组,我希望合并它们而不覆盖或丢失任何数据.我相信它们被称为关联数组,但是我对这个术语不是100%肯定.
数组包含以下信息:
$array1['title']
$array1['description']
$array2['title']
$array2['description']
$array2['random information']
我想合并$array1和$array2的公用键中包含的信息,而不会覆盖任何数据.
这可能吗?
我尝试过的不成功的事情包括:
(array)$array3 = (array)$array1 + array($array2);
$array3 = array_push($array1,$array2);
$array3 = array_merge_recursive($array1,$array2);
本质上,我想保留公用键,并将两个数组中的信息添加到新数组中.例如,我只想要新数组中的一个[‘title’] [‘description’]等,但是我想要来自新数组中两个数组的信息.
所以$array3将包含$array1和$array2中的所有信息… [‘title’] [‘description’]中的所有项目都将保留在$array3的[‘title’] [‘description’]下.
这可能吗?
多谢你们.
解决方法:
我发现使用array_replace_recursive嵌套的作品.第一个调用创建一个合并的数组,该数组可能会删除一些值,第二个调用将重新合并到您的主数组中,保留主数组中的所有数组键,但允许合并到数组中的值覆盖主数组中的值.
$mergedArray = array_replace_recursive($array2, array_replace_recursive($array1, $array2));
标签:arrays,php,merge
来源: https://codeday.me/bug/20191123/2064546.html