在PHP中,我有一个包含20个或更多元素的数组。密钥已自动分配。值是从1到50的随机数。

<?php
$randomList = array();
for ($i = 0; $i < 20; $i++) {
  $randomList[] = mt_rand(1, 50);
}
?>

现在我想将此数组绘制成折线图。不幸的是,我只能在图表中使用5个点。所以我必须减少数组中的元素数量。但我不希望改变图表的外观。所以我需要一个像这样的函数:

为了更清楚:当我想将数组的大小从6个元素减少到3个元素时,我可以总结出两个元素的对,并取平均值:

阵列(1,8,3,6,9,5)=&gt;数组(4.5,6,7)

我的函数应该使用可变大小(输入和输出)来执行此操作。

我希望你能帮助我。提前谢谢!

有帮助吗?

解决方案

要“缩短”一个数组 $ randomList $ X 元素就像你描述的那样,你可以使用 array_chunk() array_map()如下:

$randomList = array_chunk($randomList, count($randomList) / $X);
$randomList = array_map('array_average', $randomList);

array_average()定义为:

function array_average($array) {
    return array_sum($array) / count($array);
}

其他提示

$randomList = array();
for ($i = 0; $i < 20; $i++) {
  $randomList[] = mt_rand(1, 50);
}  

$avgList=array();
for($i=0;$i<count($randomList)/2;$i++) {
   $avgList[] = ($randomList[$i*2] + $randomList[$i*2+1]) / 2
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top