如何合并多个 PHP 数组同时删除重复值?

Barbara Streisand
发布: 2024-11-13 00:16:01
原创
638 人浏览过

How can I merge multiple PHP arrays while removing duplicate values?

在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板