计算PHP数组中的负值

计算PHP数组中的负值,php,Php,我有一个数组,看起来像这样: array(-2, -1, 0, 1, 2, 3, 4) 我只想数一数负数。我看不出手册上哪里写着怎么做,是不是没有这个功能?我是否必须创建一个循环来手动遍历数组 我是否必须创建一个循环来手动遍历数组 是的,您必须通过轻松执行以下操作手动完成: function count_negatives(array $array) { $i = 0; foreach ($array as $x) if ($x < 0) $i++;

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

array(-2, -1, 0, 1, 2, 3, 4)
我只想数一数负数。我看不出手册上哪里写着怎么做,是不是没有这个功能?我是否必须创建一个循环来手动遍历数组

我是否必须创建一个循环来手动遍历数组

是的,您必须通过轻松执行以下操作手动完成:

function count_negatives(array $array) {
    $i = 0;
    foreach ($array as $x)
        if ($x < 0) $i++;
    return $i;
}
函数计数\u负数(数组$array){
$i=0;
foreach($x数组)
如果($x<0)$i++;
返回$i;
}
在脚本的末尾,
$i
将包含负数

我是否必须创建一个循环来手动遍历数组

是的,您必须通过轻松执行以下操作手动完成:

function count_negatives(array $array) {
    $i = 0;
    foreach ($array as $x)
        if ($x < 0) $i++;
    return $i;
}
函数计数\u负数(数组$array){
$i=0;
foreach($x数组)
如果($x<0)$i++;
返回$i;
}
在脚本末尾,
$i
将包含负数。

使用数组过滤器

函数为负($value){
返回值为数值($value)&&$value<0;
}
$arr=数组_过滤器(数组(-1,2,3,-4),'isnegative');
回波长度($arr);
玩得开心。

使用数组过滤器

函数为负($value){
返回值为数值($value)&&$value<0;
}
$arr=数组_过滤器(数组(-1,2,3,-4),'isnegative');
回波长度($arr);
玩得开心。

我应该用这个:

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

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

var_dump(count(array_filter($array, "negative")));
$array=array(-2,-1,0,1,2,3,4);
函数负($int){
返回($int<0);
}
变量转储(计数(数组过滤器($array,“负数”));
我应该用这个:

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

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

var_dump(count(array_filter($array, "negative")));
$array=array(-2,-1,0,1,2,3,4);
函数负($int){
返回($int<0);
}
变量转储(计数(数组过滤器($array,“负数”));

您可以使用
阵列过滤器

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

$array1 = array(-2, -1, 0, 1, 2, 3, 4);
print count(array_filter($array1, "neg"));
函数负($var){
如果($var<0){
返回$var;
}        
}
$array1=数组(-2,-1,0,1,2,3,4);
打印计数(数组过滤器($array1,“neg”);

您可以使用
阵列过滤器

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

$array1 = array(-2, -1, 0, 1, 2, 3, 4);
print count(array_filter($array1, "neg"));
函数负($var){
如果($var<0){
返回$var;
}        
}
$array1=数组(-2,-1,0,1,2,3,4);
打印计数(数组过滤器($array1,“neg”);
试试这个:

$aValues = array(1, 2, 3, -1, -2, -3, 0);
echo sizeof(array_filter($aValues, create_function('$v', 'return $v < 0;')));
$aValues=array(1,2,3,-1,-2,-3,0);
echo sizeof(数组过滤器($aValues,create_函数('v','return$v<0;'));
试试这个:

$aValues = array(1, 2, 3, -1, -2, -3, 0);
echo sizeof(array_filter($aValues, create_function('$v', 'return $v < 0;')));
$aValues=array(1,2,3,-1,-2,-3,0);
echo sizeof(数组过滤器($aValues,create_函数('v','return$v<0;'));

Yes,数组中没有
count\u负数\u
函数内置。你必须自己做。现在,说真的。为什么人们试图通过调用几个内置函数来使事情变得过于复杂?就因为他们有“内置”的金字招牌吗?@PLB当然,结合几种内置方法当然可以解决问题…:P@deceze我只是开玩笑顺便说一句,人们应该缺少这样的东西(特别是如果他们来自.net)。是的,数组中没有
count\u negative\u numbers\u
函数内置。你必须自己做。现在,说真的。为什么人们试图通过调用几个内置函数来使事情变得过于复杂?就因为他们有“内置”的金字招牌吗?@PLB当然,结合几种内置方法当然可以解决问题…:P@deceze我只是开玩笑顺便说一句,人们应该缺少这样的东西(特别是如果他们来自.net)。Op知道,他要求提供内置功能。所以答案是没有。谢谢你的快速回答,也节省了我一点打字时间:)很好。谢谢Jefferyop Op知道,他要求提供内置功能。所以答案是没有。谢谢你的快速回答,也节省了我一点打字时间:)很好。谢谢Jeffery我发现此解决方案更优雅,更具可读性(在
数组_过滤器
中使用lambda函数的事件)我发现此解决方案更优雅,更具可读性(在
数组_过滤器
中使用lambda函数的事件)