在 PHP 中合并和删除重复数组
使用 PHP 数组时,通常需要将多个数组合并为一个数组。但是,避免最终数组中出现重复值至关重要。
合并两个数组
要合并两个数组,您可以使用 array_merge() 函数:
$array1 = [ (object) [ 'ID' => 749, 'post_author' => 1, 'post_date' => '2012-11-20 06:26:07', 'post_date_gmt' => '2012-11-20 06:26:07' ] ]; $array2 = [ (object) [ 'ID' => 749, 'post_author' => 1, 'post_date' => '2012-11-20 06:26:07', 'post_date_gmt' => '2012-11-20 06:26:07' ] ]; $mergedArray = array_merge($array1, $array2);
$mergedArray 将包含 $array1 和 $array2 中的元素。但是,它也会包含 $array2 中的重复对象,这可能是不可取的。
删除重复项
要删除重复项,您可以使用 array_unique()功能。该函数接受一个数组作为参数,并返回一个删除了重复值的新数组。您可以组合 array_merge() 和 array_unique() 来合并数组并删除重复项:
$mergedAndUniquedArray = array_unique(array_merge($array1, $array2), SORT_REGULAR);
SORT_REGULAR 标志可确保在删除重复项之前数组按其元素的值排序。如果您想在合并时保持原始数组的顺序,这一点非常重要。
您还可以结合使用 array_map() 和 spl_object_hash() 从数组中删除重复的对象:
$removeDuplicatesUsingObjects = function ($object) { return spl_object_hash($object); }; $mergedAndUniquedArray = array_map($removeDuplicatesUsingObjects, array_merge($array1, $array2)); $mergedAndUniquedArray = array_unique($mergedAndUniquedArray);
该方法使用 spl_object_hash() 函数为每个对象生成唯一的标识符,然后根据这些标识符删除重复项。
以上是如何合并多个 PHP 数组同时删除重复值?的详细内容。更多信息请关注PHP中文网其他相关文章!