如何通过合并两个数组并删除任何重复行来创建新的多维数组。
第一个阵列:
[
0 => ["id" => "0001", "name" => "sample name 1"],
1 => ["id" => "0002", "name" => "sample name 2"],
3 => ["id" => "0003", "name" => "sample name 3"]
]
第二个阵列:
[
0 => ["id" => "0002", "name" => "sample name 2"],
1 => ["id" => "11323", "name" => "blah blah"]
]
所需结果为:
[
["id" => "0001", "name" => "sample name 1"],
["id" => "0002", "name" => "sample name 2"],
["id" => "0003", "name" => "sample name 3"]
["id" => "11323", "name" => "blah blah"]
]
3条答案
按热度按时间wydwbb8l1#
你能做到的
产出
a6b3iqyw2#
您不需要将数据行减少为序列化字符串来检查唯一性,只需在第二个数组上调用
array_udiff()
,从其中删除第一个数组行,然后将结果与第一个数组合并。array_udiff()
在内部进行了优化,因为它使用排序算法来比较数据--这样,它比in_array()
的强力迭代性能更高。代码:(Demo)
因为要比较整行,所以还可以合并数组,并将
SORT_REGULAR
标志与array_unique()
一起使用。(Demo)lskq00tm3#
您可以序列化每个子数组,使用
array_unique
,然后反序列化: