通过平均PHP中的值来减小数值数组的大小:20个值=> X值

时间:2009-07-29 22:34:51

标签: php arrays reduction

在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)

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

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

2 个答案:

答案 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
}