Это должно работать, хотя предполагается версия PHP> = 5.3.
$max_price = array_reduce($array['cart'], function($acc, $in) {
return max($acc, $in['price']);
}, 0) or $max_price = 0;
Учитывая начальную наименьшую цену (0 ноль), array_reduce будет вызывать функцию обратного вызова для каждого элемента $ array ['cart'] (где каждый элемент также является массивом), а затем вызываемая функция возвратит максимум $ acc или $ in ['цена']. Это максимальное значение будет затем передано в функцию обратного вызова (как $ acc) при следующем вызове.
В случае, если array_reduce () возвращает NULL, $ max_price устанавливается в ноль.