我想在PHP中执行if / else语句,该语句依赖于数组中存在多次的项目。你能在in_array中使用count吗?做类似的事情:
if (count(in_array($itemno_array))) > 1 {
EXECUTE CODE }
答案 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
}