如何计算没有0的数组值

时间:2017-03-24 09:07:58

标签: php

$q1=15;
$q2=12;
$q3=23;
$q4=0;
$q5=0;


$count = array ($q1, $q2, $q3, $q4, $q5);
echo count($count);

这计算为5; 但我想没有零点数。怎么做? 我想数= 3

7 个答案:

答案 0 :(得分:0)

您的数组包含字符串" $ q1"," $ q2"," $ q3"等等, 如果你想存储它们的值你甚至不需要使用引号,或者如果你想要你可以使用双引号("")。

你可以像这样手动计算:

$count = 0;
foreach($array as $el){
    if($el != 0){
        $count++;
    }
}

或使用array_filter()内置函数。

答案 1 :(得分:0)

这是声明数组的错误方法,因为你将字符串传递给数组。你应该添加没有''的变量。如果你想要计数而不是零,你可以编写简单的foreach循环。

 $countWithoutZeros=0;
foreach($count as $number){ if($number!=0){$countWithoutZeros++}}

答案 2 :(得分:0)

array_filter()是你的朋友。

$q1=15;
$q2=12;
$q3=23;
$q4=0;
$q5=0;

$a = array ($q1, $q2, $q3, $q4, $q5);

# Method 1
$b = array_filter($a, function($v){return $v !== 0;});
var_dump($b);
echo "<p>Count: ".count($b)."</p>";

# Method 2
$b = array_filter($a);
var_dump($b);
echo "<p>Count: ".count($b)."</p>";

答案 3 :(得分:0)

试试这个:

$q1=15;
$q2=12;
$q3=23;
$q4=0;
$q5=0;


$count = array ($q1, $q2, $q3, $q4, $q5);
$count = array_filter($count);
echo count($count);

答案 4 :(得分:0)

您可以使用过滤器功能进行计数,因为@axiac已被注释

function nonzero($var){ 
    return ($var > 0); } 


$arr = array_filter($array, "nonzero"); 
echo count($arr); 

由于

答案 5 :(得分:0)

你可以使用array_filter(),它内置于函数中,所以不用担心它。

echo count(array_filter($your_array));

http://php.net/manual/en/function.array-filter.php

<?php
$q1=15;
$q2=12;
$q3=23;
$q4=0;
$q5=0;

$count = array ($q1, $q2, $q3, $q4, $q5);
echo count(array_filter($count));

如果要检查最终的数组值,请使用此代码

$count = array($q1, $q2, $q3, $q4, $q5);
$final_arr = array_filter($count);
echo "<pre>";
print_r($final_arr);

您也可以使用此代码删除所有0值

$count = array($q1, $q2, $q3, $q4, $q5);
function nonzero($var)
{
 return ($var > 0);
}

$arr = array_filter($count, "nonzero");
echo count($arr);

答案 6 :(得分:0)

tyr this:D

 $c=0;
 $count = array ('$q1','$q2','$q3','$q4','$q5');
for(i=0;i<count($count);i++){
  if(!$count[$i]==0){ 
      $c++}
  else{ continue; }
  }
 echo $c;

还阅读了有关array_filter()

的内容