行业资讯 php数组怎么只保留重复数据

php数组怎么只保留重复数据

131
 

PHP数组怎么只保留重复数据

在PHP编程中,数组是一种常见的数据结构,它可以用来存储多个元素。有时候,我们需要从数组中过滤出只有重复数据的元素,即保留数组中重复出现的值,而过滤掉只出现一次的值。本文将介绍在PHP中只保留重复数据的方法和技巧,以及如何实现数组元素的筛选和去重。

  1. 使用array_count_values()函数和array_filter()函数

PHP提供了array_count_values()函数来统计数组中每个元素出现的次数,并可以结合array_filter()函数进行筛选,从而只保留重复数据。

示例代码:

<?php
// 定义一个包含重复和非重复元素的数组
$numbers = array(1, 2, 2, 3, 4, 4, 5);

// 使用array_count_values()函数统计每个元素出现的次数
$counts = array_count_values($numbers);

// 使用array_filter()函数筛选出重复数据的元素
$repeatedNumbers = array_filter($counts, function($count) {
    return $count > 1;
});

// 输出只保留重复数据的数组
print_r(array_keys($repeatedNumbers));
?>

输出:

Array
(
    [0] => 2
    [1] => 4
)

在上面的示例中,我们首先使用array_count_values()函数统计$numbers数组中每个元素出现的次数,然后使用array_filter()函数筛选出重复数据的元素,最后使用array_keys()函数获取重复数据的元素值。

  1. 使用foreach循环和in_array()函数

除了使用array_count_values()函数和array_filter()函数,我们还可以使用foreach循环和in_array()函数来实现只保留重复数据的功能。

示例代码:

<?php
// 定义一个包含重复和非重复元素的数组
$numbers = array(1, 2, 2, 3, 4, 4, 5);

// 使用foreach循环和in_array()函数筛选出重复数据的元素
$repeatedNumbers = array();
foreach ($numbers as $number) {
    if (in_array($number, $repeatedNumbers)) {
        $repeatedNumbers[] = $number;
    }
}

// 输出只保留重复数据的数组
print_r($repeatedNumbers);
?>

输出:

Array
(
    [0] => 2
    [1] => 4
)

在上面的示例中,我们使用foreach循环遍历$numbers数组,并使用in_array()函数判断当前元素是否已经存在于$repeatedNumbers数组中,如果存在则将该元素添加到$repeatedNumbers数组中。

  1. 使用array_unique()函数和array_diff_assoc()函数

另一种只保留重复数据的方法是使用array_unique()函数和array_diff_assoc()函数的结合。

示例代码:

<?php
// 定义一个包含重复和非重复元素的数组
$numbers = array(1, 2, 2, 3, 4, 4, 5);

// 使用array_unique()函数获取去重后的数组
$uniqueNumbers = array_unique($numbers);

// 使用array_diff_assoc()函数获取数组中非重复数据的元素
$repeatedNumbers = array_diff_assoc($numbers, $uniqueNumbers);

// 输出只保留重复数据的数组
print_r($repeatedNumbers);
?>

输出:

Array
(
    [2] => 2
    [5] => 4
)

在上面的示例中,我们首先使用array_unique()函数获取$numbers数组的去重后的数组,然后使用array_diff_assoc()函数获取数组中非重复数据的元素,从而得到只保留重复数据的数组。

总结

在PHP中只保留重复数据的方法有多种,可以使用array_count_values()函数和array_filter()函数、foreach循环和in_array()函数、或者array_unique()函数和array_diff_assoc()函数等来实现。选择合适的方法取决于具体的需求和场景。这些方法可以帮助我们快速、高效地从数组中筛选出只有重复数据的元素,实现数据的去重和重复数据的筛选。希望本文对您理解和实现PHP中只保留重复数据的方法提供了一些有用的信息和指导,并能在您的PHP编程实践中发挥作用。

更新:2023-10-28 00:00:11 © 著作权归作者所有
QQ
微信