Удалить максимум / мин из массива, взять среднее значение, среднее значение выхода - PullRequest
0 голосов
/ 15 декабря 2011
<code><?php 
$url = 'https://www.googleapis.com/shopping/search/v1/public/products?key=thekey&country=US&q=nintendo+wii';

$data = curl_init($url);
curl_setopt($data, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($data, CURLOPT_HEADER, 0);

$product_result = curl_exec($data);
curl_close($data);


$arr = json_decode($product_result, true);
$prices = array();

echo "Original Values";

foreach ($arr['items'] as $item)
{
    if (isset($item['product']['inventories'][0]['price']))
    {
        $prices[] = $item['product']['inventories'][0]['price'];
    }
}


echo '<pre>';
print_r($prices);
echo '<br /><br />';

// Get the values
$min = $prices[$minIndex];
$max = $prices[$maxIndex];

// Find the values
$minIndex = array_search($min, $prices);
$maxIndex = array_search($max, $prices);

#print out results with no min/max pair
echo $prices[$min] . 'max is ' . $prices[$max];
echo '
'; // Сбросить значения unset (цены $ [$ minIndex], цены $ [$ maxIndex]); ?>

У меня есть следующий код, и в настоящее время его вывод: Исходные значения

Array
(
    [0] => 199.95
    [1] => 149.99
    [2] => 129.99
    [3] => 149.99
    [4] => 149.99
    [5] => 124.99
    [6] => 225.99
    [7] => 149.96
    [8] => 149.99
    [9] => 149.99
    [10] => 184.99
    [11] => 199.99
    [12] => 184.98
    [13] => 149.99
    [14] => 326.99
    [15] => 269.96
    [16] => 348.95
    [17] => 108.9
    [18] => 149.99
    [19] => 149.99
    [20] => 229.99
    [21] => 357.38
    [22] => 169.96
    [23] => 229.98
    [24] => 187.99
)


max is 

Следует удалить ключи массива [21] и [17], так как они являются максимальными и минимальными. затем взять среднее без этих двух значений и отобразить его.

Как мне это сделать?

Ответы [ 3 ]

5 голосов
/ 15 декабря 2011
  1. сортировка массива (sort)
  2. удалить первый элемент (array_shift)
  3. удалить последний элемент (array_pop)
  4. создать сумму оставшегося массива (array_sum)
  5. разделите сумму на количество элементов в оставшемся массиве (count).

Пример кода:

sort($prices, SORT_NUMERIC);
array_shift($prices);
array_pop($prices);
$sum = array_sum($prices);
$average = $sum / count($prices);
4 голосов
/ 15 декабря 2011

Вы можете использовать sort, array_shift и array_pop

sort($prices); // Sort the array from lowest to highest value
array_pop($prices); // Remove the max value. Use $max = array_pop($prices); if you want to use the value
array_shift($prices); // Remove the min value. Use $min = array_shift($prices); if you want to use the value

echo array_sum($prices)/count($prices); // Echo the average without $max or $min
0 голосов
/ 31 октября 2017

Вы также можете использовать array_sum , max , min и count

echo (array_sum($prices) - max($prices) - min($array)) / count($prices);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...