Выбор значения из многомерного массива

333
31 августа 2017, 21:09

есть массив $ArrayPapirus:

$ArrayPapirus[$GoodsFormat['id']]['Cost'] = $PapirusCost;
$ArrayPapirus[$GoodsFormat['id']]['OnXY'] = $OnXY;

надо выбрать единственное значение с максимальным показателем по OnXY и минимальным показателем по Cost

Answer 1

Допустим, ваш исходный массив:

$arrayPapirus = [
    ['onXY' => 10, 'Cost' => 30],
    ['onXY' => 10, 'Cost' => 30],
    ['onXY' => 20, 'Cost' => 20],
    ['onXY' => 20, 'Cost' => 20],
    ['onXY' => 30, 'Cost' => 10, 'winner' => true],
    ['onXY' => 30, 'Cost' => 15],
];

Находим искомые максимальное onXY и минимальное Cost:

$maxXY   = max(array_column($arrayPapirus, 'onXY'));
$minCost = min(array_column($arrayPapirus, 'Cost'));

Фильтруем массив, и оставляем только те элементы, где достигается максимум и минимум:

$result = array_filter($arrayPapirus, function($el) use ($maxXY, $minCost){
                  return ($el['onXY'] == $maxXY) && ($el['Cost'] == $minCost); 
              });

Имеем результат:

Array (
    [4] => Array
        (
            [onXY] => 30
            [Cost] => 10
            [winner] => 1
        )
)

Если предположить, что результат действительно единственный, то берем одно значение из массива (array_shift, array_pop, array_values(...)[0])

READ ALSO
Не отображаются картинки в медиa Wordpress

Не отображаются картинки в медиa Wordpress

Перенес сайт вместе с базой, и тут обнаружил, что в библиотеке не отображаются картинки, путь только такой /wp-includes/images/media/defaultpng, при клике на саму...

278
Шаблонизатор твиг

Шаблонизатор твиг

Изучаю php в данный момент разбираюсь с шаблонизатором Twig, с одной страницей я понял как работать, а как если у тебя их 30 штук, какой логике формирования...

200
php функция preg_replace

php функция preg_replace

Доброго времени суток

283