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

时间:2018-05-05 17:48:12

标签: php arrays

无论如何都要在数组值中找到重复项?如: -

POST

宝马丰田出现两次输出将是宝马丰田 我知道array_search(),但你必须提供你想要搜索的内容。 我可以匹配关键字的数组值,但数组的大小可以变化,如果有人帮助我,那将是很好的。

3 个答案:

答案 0 :(得分:6)

一个选项是使用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()

答案 1 :(得分:0)

你可以这样做

function array_match_dump($array){
   return array_unique(array_diff_assoc($array,array_unique($array)));
}

答案 2 :(得分:0)

通过组合

可以实现更简单和优雅的解决方案

array_uniquearray_diff_assoc

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

结果如下:

Array
(
    [3] => BMW
    [4] => Toyota
)