通过平均PHP中的值来减小数值数组的大小:20个值=> X值
题
在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
}
不隶属于 StackOverflow