Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何创建第二个数组并显示大于第一个数组平均数的数字?_Php_Arrays - Fatal编程技术网

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

Php 如何创建第二个数组并显示大于第一个数组平均数的数字?,php,arrays,Php,Arrays,我想制作第二个数组,它使用rand函数给出大于第一个数组平均数的所有数字 我创建了一个新数组,并尝试使用if语句来显示大于平均数的所有数字,并将这些值放入一个新的空数组中 $arrNums = array(); $arrNewNums = array(); $intSum = 0; $intTotalNum = 20; for($i = 0; $i < $intTotalNum; $i++) { $intRand = rand(9, 99); $arrNums[] = $intR

我想制作第二个数组,它使用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);
$arrNums=array();
$arrNewNums=array();
$intSum=0;
$intTotalNum=20;
对于($i=0;$i<$intTotalNum;$i++)
{
$intRand=兰特(9,99);
$arrNums[]=$intRand;
$intSum=$intSum+$arrNums[$i];
$averageNum=$intSum/count($arrNums);
foreach($arrNums作为$key=>$value)
{
如果($value>$averageNum)
{
$arrNewNums[]=rand();
}
}
}
回声';
印刷费($arrNums);
回声“
”; echo“数组中的平均数为”$averageNum; 回声“
”; 印刷费($arrNewNums);

我希望得到比平均数大20个数字的输出,例如56.4,但我得到的不是100个数字,而是所有数字,例如864165243、738017258等等…

这是任务的正确代码:

$arrNums=array();
$arrNewNums=array();
$intSum=0;
$intTotalNum=20;
对于($i=0;$i<$intTotalNum;$i++)
{
$intRand=兰特(9,99);
$arrNums[]=$intRand;
$intSum+=$intRand;
}
//在数组中包含所有项后计算平均值
//$averageNum=数组和($arrNums)/计数($arrNums);
//不带'array\u sum':
$averageNum=$intSum/count($arrNums);
//在数组中包含所有项后检查数组的值
foreach($arrNums作为$value){
如果($value>$averageNum){
//将“$value”添加到“$arrNewNums”,而不是一些随机变量。
$arrNewNums[]=$value;
}
}
回声';
印刷费($arrNums);
回声“
”; echo“数组中的平均数为”$averageNum; 回声“
”; 印刷费($arrNewNums);
给出了前面的问题。我假设数组和是不允许的。更新了答案。我认为OP要求得到另外20个大于平均数的随机数。
$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);