如何创建第二个数组并显示大于第一个数组平均数的数字?

我想制作第二个数组,使用 rand 函数给出所有数字,这些数字大于第一个数组的平均数。


我创建了新数组,并尝试使用 if 语句显示大于平均数的所有数字,并将这些值放入新的空数组中


$arrNums = array();

$arrNewNums = array();

$intSum = 0;

$intTotalNum = 20;


for($i = 0; $i < $intTotalNum; $i++)

{

  $intRand = rand(9, 99);

  $arrNums[] = $intRand;

  $intSum = $intSum + $arrNums[$i];

  $averageNum = $intSum / count($arrNums);


foreach($arrNums as $key => $value)

{

  if($value > $averageNum)

  {

    $arrNewNums[] = rand();

  }

 }


}


echo '<pre>';

print_r($arrNums);

echo "<br>";

echo "Average number from array is " . $averageNum;

echo "<br>";

print_r($arrNewNums);

我想得到大于平均数的 20 个数字的输出,例如 56.4,但我得到的不是 100 个数字,它们都是例如 864165243、738017258 等等......


哆啦的时光机
浏览 173回答 1
1回答

喵喵时光机

这是您任务的正确代码:$arrNums = array();$arrNewNums = array();$intSum = 0;$intTotalNum = 20;for($i = 0; $i < $intTotalNum; $i++){&nbsp; $intRand = rand(9, 99);&nbsp; $arrNums[] = $intRand;&nbsp; $intSum += $intRand;}// count average value AFTER you have all items in array// $averageNum = array_sum($arrNums) / count($arrNums);// Without `array_sum`:$averageNum = $intSum / count($arrNums);// check values of array AFTER you have all items in arrayforeach($arrNums as $value) {&nbsp; if($value > $averageNum) {&nbsp; &nbsp; // add `$value` to `$arrNewNums`, not some random variable.&nbsp; &nbsp; $arrNewNums[] = $value;&nbsp; }}echo '<pre>';print_r($arrNums);echo "<br>";echo "Average number from array is " . $averageNum;echo "<br>";print_r($arrNewNums);
打开App,查看更多内容
随时随地看视频慕课网APP