sum和divide取决于输入php

时间:2017-02-04 11:01:31

标签: php

我有一个这样的表格

for($x=0;$x<8;$x++){
 echo "<input name='test[]'> <br>";
}

然后我输入了,我得到了这个结果

Array
(
    [0] => 1
    [1] => 2
    [2] => 0
    [3] => 0
    [4] => 0
    [5] => 
    [6] => 0
    [7] => 
)

我希望sum然后divide。我正在使用array_sumsum。现在问题是,我divide怎么能取决于我的输入而不是很多输入字段,我不想把零作为输入。

所以它会变成这样的东西

(1+2) / 2

我怎样才能实现这一目标?抱歉我的英语不好。

3 个答案:

答案 0 :(得分:3)

如果您只想计算非零值,则需要过滤掉这些零值和空值。您仍然可以使用array_sum()来对数组求和,但您需要在count()上使用过滤器,因为count()会计算所有元素,无论内容如何({ {1}} - 值)。

null会解决这个问题。所以你只需要这个

array_filter()

Live demo

答案 1 :(得分:0)

试试这个:

$myArray = Array
(
    [0] => 1
    [1] => 2
    [2] => 0
    [3] => 0
    [4] => 0
    [5] => 
    [6] => 0
    [7] => 
)

$countArray = 0;
foreach($myArray as $v){
   if($v !== 0 || $v !== ''){ //skip if 0 or empty
    $countArray++
   }
}

$result = array_sum($myArray) / $countArray; 

答案 2 :(得分:0)

您可以使用此PHP自定义函数

struct.pack_into(">b", ba2, 1, 1)