检查变量是否在数组中存在多次?

时间:2012-01-16 16:24:53

标签: php arrays count duplicates

我想在PHP中执行if / else语句,该语句依赖于数组中存在多次的项目。你能在in_array中使用count吗?做类似的事情:

if (count(in_array($itemno_array))) > 1 { EXECUTE CODE }

4 个答案:

答案 0 :(得分:8)

设$ item为您在数组中检查其频率的项目,$ array是您要搜索的数组。

解决方案1:

$array_count = array_count_values($array); 
if (array_key_exists($item, $array_count) && ($array_count["$item"] > 1))
{
   /* Execute code */
}

array_count_values()返回一个数组,使用输入数组的值作为键,输入的频率为值(http://php.net/manual/en/function.array-count-values.php

解决方案2:

if (count(array_keys($array, $item)) > 1) 
{
     /* Execute code */
}

选中此http://www.php.net/manual/en/function.array-keys.php - “如果指定了可选的search_value,则只返回该值的键”

答案 1 :(得分:4)

答案 2 :(得分:3)

http://www.php.net/manual/en/function.array-keys.php

in_array只返回一个bool,所以你无法计算它。然而,array_keys返回数组中项目的所有键的数组,因此检查该结果的长度将为您提供是否存在多次。

答案 3 :(得分:1)

我可能误解了你的问题,但也许这就是你所需要的:

if ( count($in_array) > count(array_unique($in_array)) ) 
{
 EXECUTE CODE
}