📜  php 获取数组中重复值的键 - PHP (1)

📅  最后修改于: 2023-12-03 15:18:32.031000             🧑  作者: Mango

PHP获取数组中重复值的键

在PHP中,如果我们有一个数组,并且想要找到它中重复的值所在的键,那么可以通过以下方法来实现。

方法1:使用array_count_values函数

这是PHP内置函数之一,可以返回一个数组中每个值的出现次数。我们可以使用该函数来获取重复的值及其在原数组中所在的键值。代码示例:

$arr = array(1, 2, 3, 3, 4, 5, 5, 5);

$counts = array_count_values($arr);

$repeated = array();

foreach($counts as $key => $value) {
    if($value > 1) {
        array_push($repeated, $key);
    }
}

print_r($repeated);

该代码将返回原数组中所有重复的值的键值。

解释

首先,我们创建了一个包含一些重复值的数组。然后,我们使用array_count_values函数获取每个值的出现次数。接着,我们创建一个新的空数组,用于存储重复的值,最后通过循环将重复的值添加到新数组中。

方法2:使用array_unique函数

另一个获取数组中重复值的键的方法是使用array_unique函数。该函数可以返回数组中的不重复值,我们可以通过比较原数组和该函数的返回值来获取重复的值及其在原数组中所在的键。代码示例:

$arr = array(1, 2, 3, 3, 4, 5, 5, 5);

$unique = array_unique($arr);
$repeated = array_diff_assoc($arr, $unique);

print_r($repeated);
解释

首先,我们创建了一个包含一些重复值的数组。然后,我们使用array_unique函数返回数组中的不重复值,接着通过array_diff_assoc函数找到原数组中与不重复值不同的值,最后返回这些不同的值,即为原数组中的重复值。

总结

以上我们介绍了两种获取数组中重复值的键的方法,分别使用了PHP内置的函数array_count_values和array_unique。两种方法各有优缺点,选择哪种方式取决于具体的需求,但在实际应用中,根据数据量的大小和运算复杂度,我们需要谨慎选择。