$q1=15;
$q2=12;
$q3=23;
$q4=0;
$q5=0;
$count = array ($q1, $q2, $q3, $q4, $q5);
echo count($count);
这计算为5; 但我想没有零点数。怎么做? 我想数= 3
答案 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()
的内容