我有一个看起来像这样的数组:
array(-2, -1, 0, 1, 2, 3, 4)
我只想计算负数的数量。我无法在手册中找到它说的如何做到这一点,有没有这样做的功能?我是否必须创建一个循环来手动完成数组?
答案 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;')));