php数组去重的三种方法:使用 array_unique() 函数,根据元素值去除重复值,保留键值顺序。使用 array_filter() 函数,基于回调函数的条件移除重复元素。使用 splobjectstorage 类,利用对象唯一性的特性实现数组去重,保留键值关联。

数组去重是指去除数组中重复的值,获得一个只包含唯一值的新数组。PHP 提供了几种方法来实现数组去重:
array_unique() 函数array_unique() 是一个内置函数,专门用于去除数组中的重复值。它根据每个元素的值进行比较,并返回一个仅包含唯一元素的新数组。语法如下:
array_unique(array $array);
示例:
立即学习“PHP免费学习笔记(深入)”;
$numbers = [1, 2, 3, 4, 5, 1, 2, 3]; $unique_numbers = array_unique($numbers); print_r($unique_numbers);
输出:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)注意: array_unique() 会保留键值顺序,但如果需要,可以使用 array_values() 函数将保留的键值变为连续的数字。
array_filter() 函数array_filter() 函数可以根据回调函数的条件将数组中的某些元素移除。它会将满足回调函数返回 true 的元素保留在数组中,而将其他元素过滤掉。
示例:
立即学习“PHP免费学习笔记(深入)”;
$numbers = [1, 2, 3, 4, 5, 1, 2, 3];
$unique_numbers = array_filter($numbers, function($value, $index) {
return array_search($value, $numbers) === $index;
});
print_r($unique_numbers);输出:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)注意: 此回调函数检查每个元素在数组中出现的第一个索引是否与当前索引相同,以确定它是否是一个唯一值。
SplObjectStorage 类SplObjectStorage 类是一种更高级的存储对象集合的容器。可以将它用作散列表,其中对象是键,而关联的值是保留的值。由于散列表不允许重复键,因此可以使用 SplObjectStorage 来实现数组去重。
示例:
立即学习“PHP免费学习笔记(深入)”;
$numbers = [1, 2, 3, 4, 5, 1, 2, 3];
$unique_numbers = new SplObjectStorage();
foreach ($numbers as $number) {
$unique_numbers->attach($number);
}
foreach ($unique_numbers as $number) {
echo $number . "\n";
}输出:
1 2 3 4 5
注意: 这种方法利用了对象不能重复的特性。SplObjectStorage 中的键是不唯一的,因为每个对象都有一个不同的身份。因此,它可以有效地去除数组中的重复值。
以上就是如何实现 PHP 数组中数据的去重?的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号