PHP değerlerini ortalayarak sayısal dizinin boyutunu azaltın: 20 değerler =>

1 Cevap php

PHP Ben 20 öğeleri veya daha fazlasını içeren bir dizi var. Tuşları otomatik olarak atanmıştır. Değerler 1-50 rasgele sayılardır.

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

Şimdi bir çizgi grafiğe bu dizi çizmek istiyorum. Ne yazık ki, sadece grafik için 5 puan kullanabilirsiniz. Yani dizideki elemanların sayısını azaltmak gerekir. Ama grafiğin görünümünü değiştirdi olmak istemiyorum. Yani böyle bir işlevi gerekir:

Daha anlaşılır hale getirmek için: I 3 elemanlarına 6 unsurlardan bir dizinin boyutunu azaltmak istediğinizde, ben sadece iki unsurdan her çiftleri özetlemek ve ortalamasını alabilir:

dizi (1, 8, 3, 6, 9, 5) => array (4,5, 6, 7)

Benim fonksiyonu (giriş ve çıkış için) değişken boyutları ile yapmalıdır.

Bana yardımcı olur umarım. Şimdiden teşekkürler!

1 Cevap

, Eğer anlattığım şekilde $X elemanlarının bir dizi $randomList "kısaltmak" için, array_chunk() kullanabilir ve array_map() birlikte gibi bu:

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

Ve array_average() olarak tanımlamak:

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