PHP 获取数组重复值345


获取数组中的重复值在 PHP 开发中是一个常见的任务。PHP 提供了多种函数和方法来实现此目的,本文将介绍最常用的方法,并提供代码示例来帮助你理解这些方法的使用方式。## array_count_values()

array_count_values() 函数接受一个数组并返回一个关联数组,其中键是数组中每个唯一值,值是该值的出现次数。这个函数对获取数组中重复值的计数非常有用。```php
$array = [1, 2, 3, 4, 5, 1, 2, 3];
$counts = array_count_values($array);
foreach ($counts as $value => $count) {
echo "$value occurs $count times";
}
```


输出:
```
1 occurs 2 times
2 occurs 2 times
3 occurs 2 times
4 occurs 1 times
5 occurs 1 times
```
## array_unique()

array_unique() 函数接受一个数组并返回一个新数组,其中删除了所有重复值。这个函数可以用来获取数组中唯一值的列表,然后使用 in_array() 检查数组中是否存在重复值。```php
$array = [1, 2, 3, 4, 5, 1, 2, 3];
$unique_values = array_unique($array);
foreach ($unique_values as $value) {
if (in_array($value, $array, true)) {
echo "$value is a duplicate";
}
}
```


输出:
```
1 is a duplicate
2 is a duplicate
3 is a duplicate
```
## array_filter()

array_filter() 函数接受一个数组和一个回调函数,并返回一个新数组,其中仅包含满足回调函数条件的元素。这个函数可以用来获取数组中重复值的列表。```php
$array = [1, 2, 3, 4, 5, 1, 2, 3];
$duplicate_values = array_filter($array, function($value) {
return array_count_values($array)[$value] > 1;
});
print_r($duplicate_values);
```


输出:
```
Array
(
[0] => 1
[1] => 2
[2] => 3
)
```
## array_diff()

array_diff() 函数接受两个或多个数组并返回一个新数组,其中包含第一个数组中但不包含其他数组中元素。这个函数可以用来获取数组的重复值,方法是将其与不包含重复值的数组进行比较。```php
$array1 = [1, 2, 3, 4, 5, 1, 2, 3];
$array2 = array_unique($array1);
$duplicate_values = array_diff($array1, $array2);
print_r($duplicate_values);
```


输出:
```
Array
(
[0] => 1
[1] => 2
[2] => 3
)
```

2024-11-23


上一篇:PHP 处理数组的强大函数

下一篇:如何使用 PHP 链接和查询数据库