Php 如何创建第二个数组并显示大于第一个数组平均数的数字?
我想制作第二个数组,它使用rand函数给出大于第一个数组平均数的所有数字 我创建了一个新数组,并尝试使用if语句来显示大于平均数的所有数字,并将这些值放入一个新的空数组中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
$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);