如何在PHP数组中查找重复项?

5
有什么方法可以找到数组值中的重复项吗?比如:-
$cars = array("Volvo", "BMW", "Toyota", "BMW", "Toyota");

作为BMW和Toyota出现两次,输出结果将是BMW和Toyota。 我知道array_search()函数,但在其中您必须提供要搜索的内容。 我可以根据键匹配数组值,但数组的大小可能会变化,如果有人能帮助我解决这个问题就太好了。

你说的“匹配值”是什么意思?你是在问“如何在PHP数组中找到重复项”吗? - tadman
@tadman 是的,我想要找到重复项。 - Zohaib
1
可能是如何在PHP数组中检测重复值?的重复问题。 - Pradeep
有很多方法可以得到一个独特项的数组...你究竟想做什么? - ivanivan
相关链接:返回数组重复项的具体结果 - undefined
2个回答

9

一种方法是使用array_count_values()函数,只包含包含多个值的数组元素。

$cars = array("Volvo", "BMW", "Toyota", "BMW", "Toyota");

foreach( array_count_values($cars) as $key => $val ) {
    if ( $val > 1 ) $result[] = $key;   //Push the key to the array sice the value is more than 1
}

echo "<pre>";
print_r( $result );
echo "</pre>";

这将导致:
Array
(
    [0] => BMW
    [1] => Toyota
)

Doc: array_count_values()


0
你可以这样做。
function array_match_dump($array){
   return array_unique(array_diff_assoc($array,array_unique($array)));
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接