计算PHP数组中的负值

时间:2013-02-13 13:33:35

标签: php

我有一个看起来像这样的数组:

array(-2, -1, 0, 1, 2, 3, 4)

我只想计算负数的数量。我无法在手册中找到它说的如何做到这一点,有没有这样做的功能?我是否必须创建一个循环来手动完成数组?

5 个答案:

答案 0 :(得分:3)

  

我是否必须创建一个循环来手动浏览数组?

是的,你必须通过以下方式手动完成:

function count_negatives(array $array) {
    $i = 0;
    foreach ($array as $x)
        if ($x < 0) $i++;
    return $i;
}

在脚本$i的末尾将包含负数的数量。

答案 1 :(得分:1)

您可以使用array_filter

function neg($var){
    if($var < 0){
        return $var;
    }        
}

$array1 = array(-2, -1, 0, 1, 2, 3, 4);
print count(array_filter($array1, "neg"));

答案 2 :(得分:0)

使用array_filter http://www.php.net/manual/en/function.array-filter.php

function isnegative($value){
    return is_numeric($value) && $value < 0;
}

$arr = array_filter(array(-1,2,3,-4), 'isnegative');

echo length($arr);

玩得开心。

答案 3 :(得分:0)

我应该用这个:

$array = array(-2, -1, 0, 1, 2, 3, 4);

function negative($int) {
     return ($int < 0);
}

var_dump(count(array_filter($array, "negative")));

答案 4 :(得分:0)

试试这个:

$aValues = array(1, 2, 3, -1, -2, -3, 0);
echo sizeof(array_filter($aValues, create_function('$v', 'return $v < 0;')));