例如我有一个这样的数组[-1,-1,-1,-1,-1,-1,2.5,-1,-1,8.3]
除了-1
之外,我想计算不是-1
的元素。在PHP中有任何功能来获取此功能吗?我认为的一种方法是
Count the total array - count of the -1 in the array
。
我们怎样才能做到这一点。
P.S:请给我一个评论,为什么这个问题值得投反对票。答案 0 :(得分:0)
您可以使用for循环计数器跳过特定数字。
function skip_counter($array,$skip){
$counter = 0;
foreach ($array as $value) {
if ($value != $skip) $counter++;
}
return $counter;
}
然后你拨打skip_counter($your_list, $number_to_be_skipped);
答案 1 :(得分:0)
与@MarkBaker said一样,PHP对每个问题都没有方便的功能,但是,可以自己创建一个:
$arr = [-1,-1,-1,-1,-1,-1,2.5,-1,-1,8.3];
function countExcludingValuesOfNegativeOne ($arr) {
return count($arr) - array_count_values(array_map('strval', $arr))['-1'];
}
echo countExcludingValuesOfNegativeOne($arr); // Outputs `2`.
它只计算整个数组,然后减去数组中负数1的数量。因为当使用1时,如果数组中的任何元素不是字符串 array_count_values
,则PHP会抛出错误,我刚刚使用数组的所有元素转换为字符串array_map('strval', $arr)
2