为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
哆啦的时光机 2021-12-03 10:35:19
我想制作第二个数组,使用 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 等等......
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

这是您任务的正确代码:


$arrNums = array();

$arrNewNums = array();

$intSum = 0;

$intTotalNum = 20;


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

{

  $intRand = rand(9, 99);

  $arrNums[] = $intRand;

  $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 array

foreach($arrNums as $value) {

  if($value > $averageNum) {

    // add `$value` to `$arrNewNums`, not some random variable.

    $arrNewNums[] = $value;

  }

}


echo '<pre>';

print_r($arrNums);

echo "<br>";

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

echo "<br>";

print_r($arrNewNums);


查看完整回答
反对 回复 2021-12-03
  • 1 回答
  • 0 关注
  • 171 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信