есть массив $ArrayPapirus:
$ArrayPapirus[$GoodsFormat['id']]['Cost'] = $PapirusCost;
$ArrayPapirus[$GoodsFormat['id']]['OnXY'] = $OnXY;
надо выбрать единственное значение
с максимальным показателем по OnXY и минимальным показателем по Cost
Допустим, ваш исходный массив:
$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])
Продвижение своими сайтами как стратегия роста и независимости