在PHP中,我有一个包含20个或更多元素的数组.按键已自动分配.取值为1到50的随机数.
<?php
$randomList = array();
for ($i = 0; $i < 20; $i++) {
$randomList[] = mt_rand(1, 50);
}
?>
现在,我想将此数组绘制为折线图.不幸的是,我只能在图表上使用5点.因此,我必须减少数组中元素的数量.但是我不想改变图表的外观.所以我需要这样的功能:
更清楚地说:当我想将数组的大小从6个元素减少到3个元素时,我可以将每个两个元素对加起来并取平均值:
array(1、8、3、6、9、5)=>数组(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);
}