📜  php 从数组中获取非唯一值 - PHP (1)

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

PHP:从数组中获取非唯一值

在 PHP 中,有时候需要在数组中获取非唯一值,也就是出现次数大于 1 次的值。以下是几种获取非唯一值的方法。

方法一:使用 array_count_values() 函数和 array_filter() 函数
$array = array(1, 2, 3, 2, 4, 3, 5, 4, 6);
$count = array_count_values($array);
$non_unique_values = array_filter($count, function($value) { return $value > 1; });
print_r(array_keys($non_unique_values));

该方法使用了 array_count_values() 函数,该函数会返回一个数组,其中每个元素表示数组中相应值出现的次数。接下来使用 array_filter() 函数和一个匿名函数来筛选出出现次数大于 1 次的元素。最后使用 array_keys() 函数来返回这些元素的键。

方法二:使用 array_unique() 函数和 array_diff_assoc() 函数
$array = array(1, 2, 3, 2, 4, 3, 5, 4, 6);
$unique_array = array_unique($array);
$non_unique_array = array_diff_assoc($array, $unique_array);
print_r(array_values($non_unique_array));

该方法先使用 array_unique() 函数来获取数组中的唯一值,然后使用 array_diff_assoc() 函数和原数组进行比较,得到非唯一值,最后使用 array_values() 函数返回这些非唯一值。

方法三:使用 array_keys() 函数和 array_unique() 函数
$array = array(1, 2, 3, 2, 4, 3, 5, 4, 6);
$count = array_count_values($array);
$non_unique_keys = array_keys($count, 2);
print_r($non_unique_keys);

该方法先使用 array_count_values() 函数获取数组中每个元素出现的次数,然后使用 array_keys() 函数和 2 进行比较,得到出现次数为 2 的元素的键,最后返回这些键。

以上就是获取 PHP 数组中非唯一值的几种方法,你可以根据自己的需求来选择其中一种。