0

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

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

我只想计算负数的数量。我无法在手册中找到它说明如何执行此操作的位置,是否没有执行此操作的功能?我是否必须创建一个循环才能手动通过数组?

4

5 回答 5

3

我是否必须创建一个循环才能手动通过数组?

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

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

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

于 2013-02-13T13:34:58.983 回答
2

我应该使用这个:

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

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

var_dump(count(array_filter($array, "negative")));
于 2013-02-13T13:38:35.413 回答
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"));
于 2013-02-13T13:40:25.840 回答
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);

玩得开心。

于 2013-02-13T13:37:09.207 回答
0

试试这个:

$aValues = array(1, 2, 3, -1, -2, -3, 0);
echo sizeof(array_filter($aValues, create_function('$v', 'return $v < 0;')));
于 2013-02-13T14:39:15.200 回答