计算除特定元素之外的数组中的元素

时间:2017-11-03 13:36:30

标签: php arrays

例如我有一个这样的数组[-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:请给我一个评论,为什么这个问题值得投反对票。

2 个答案:

答案 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