Réduisez la taille du tableau numérique en faisant la moyenne des valeurs en PHP: 20 valeurs = > Valeurs X

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

  •  05-07-2019
  •  | 
  •  

Question

En PHP, j'ai un tableau contenant 20 éléments ou plus. Les clés ont été attribuées automatiquement. Les valeurs sont des nombres aléatoires compris entre 1 et 50.

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

Maintenant, je veux tracer ce tableau dans un graphique en courbes. Malheureusement, je ne peux utiliser que 5 points pour le graphique. Je dois donc réduire le nombre d'éléments dans le tableau. Mais je ne veux pas que l'apparence du graphique soit modifiée. J'ai donc besoin d'une fonction comme celle-ci:

Pour être plus clair: lorsque je veux réduire la taille d’un tableau de 6 éléments à 3 éléments, je peux simplement résumer des paires de deux éléments et prendre la moyenne:

tableau (1, 8, 3, 6, 9, 5) = > tableau (4.5, 6, 7)

Ma fonction devrait le faire avec des tailles variables (pour l'entrée et la sortie).

J'espère que vous pourrez m'aider. Merci d'avance!

Était-ce utile?

La solution

Pour "raccourcir" un tableau $ randomList à $ X comme décrit précédemment, vous pouvez utiliser array_chunk () et array_map () ensemble comme ceci:

$randomList = array_chunk($randomList, count($randomList) / $X);
$randomList = array_map('array_average', $randomList);

Et définissez array_average () comme suit:

function array_average($array) {
    return array_sum($array) / count($array);
}

Autres conseils

$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
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top