PHPで値を平均化することにより、数値配列のサイズを小さくします。 X値

StackOverflow https://stackoverflow.com/questions/1203467

  •  05-07-2019
  •  | 
  •  

質問

PHPには、20個以上の要素を含む配列があります。キーは自動的に割り当てられています。値は1〜50の乱数です。

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

次に、この配列を折れ線グラフにプロットします。残念ながら、グラフには5ポイントしか使用できません。そのため、配列内の要素の数を減らす必要があります。しかし、チャートの外観を変更したくありません。そのため、次のような関数が必要です。

より明確にするために:配列のサイズを6要素から3要素に減らしたい場合、2つの要素のペアを合計して平均を取ることができます:

array(1、8、3、6、9、5)=&gt; array(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