在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)
我的函数应该使用可变大小(输入和输出)来执行此操作。
我希望你能帮助我。提前谢谢!
答案 0 :(得分:4)
要按照您描述的方式“缩短”数组$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);
}
答案 1 :(得分:-1)
$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
}