获取高于特定元素的元素数量

时间:2016-04-07 22:59:26

标签: php arrays

我的PHP代码中有这个:

$aNumbers = array(2,8,9,5.5,4,5.5,6,7,8,9,10,1,'NB');

由此我必须确定高于5.5的值的数量和所有数字的平均值。仅使用For循环,if / else构造和count()函数。

我自己试图解决这个问题,但在互联网上我找不到足够的信息。

2 个答案:

答案 0 :(得分:1)

这应该这样做:

$aNumbers = array(2,8,9,5.5,4,5.5,6,7,8,9,10,1,'NB');

const HIGH_VALUE_CUTOFF = 5.5;

$uncleanArrayCount = count($aNumbers);
$cleanArray = array();
$highValueCount = 0;
$sum = 0;

for ($i = 0; $i < $uncleanArrayCount; $i++) {
    if ($aNumbers[$i] > 0) { // catch only numbers
        $sum += $aNumbers[$i];
        $cleanArray[] = $aNumbers[$i]; // builds an array of numbers
    }
    if ($aNumbers[$i] > HIGH_VALUE_CUTOFF) {
        $highValueCount++;
    }
}

$average = $sum / count($cleanArray);

echo "Average: $average <br />";
echo "Numbers above " . HIGH_VALUE_CUTOFF . ": $highValueCount";

下次发布您尝试过的内容。 &#39; Twas乐在为你做功课!

答案 1 :(得分:-1)

尝试这样的事情:

<?php

    $sum = 0;
    $amount = 0;
    $aNumbers = array(2, 8, 9, 5.5, 4, 5.5, 6, 7, 8, 9, 10, 1, 'NB');

    foreach ($aNumbers as $value){
        if($value > 5){
            $sum += $value;
            $amount++;
        }
    }

    echo "Sum : " . $sum . " -  Average : ". ($sum / $amount);

?>