我需要遍历数组以找到重复的数组元素并回显它们。我需要一个for循环,但我以前的尝试只是无法比较。
$array = array(3,2,1,3);
答案 0 :(得分:3)
您可以使用array_count_values:
$array = array(3, 2, 1, 3);
$counts = array_count_values($array);
foreach ($counts as $key => $count) {
if ($count > 1) {
echo sprintf('Key %s is present in the array %d times!', $key, $count);
}
}
答案 1 :(得分:1)
您可以将for
与array_count_values()
结合使用,而不是使用foreach
循环。
$duplicates = array();
foreach(array_count_values($arr) as $val => $freq) {
if($freq > 1) $duplicates[] = $val;
}
答案 2 :(得分:0)
结合array_count_values,array_filter,array_keys:
$array = [3, 2, 1, 3];
$duplicates = array_keys(
array_filter(
array_count_values($array),
function ($i) {
return $i > 1;
}
)
);
print_r($duplicates);
// results
Array
(
[0] => 3
)
希望有所帮助。