Ошибка в получении минимальной цены через array_reduce
В переменной $data
array(1000) { [0]=> array(7) { ["id"]=> int(1) ["price"]=> string(7) "0.10467"...
Пытаюсь найти минимальную цену
$minPrice = array_reduce($data, function($p, $c) {
return ((float) $p['price'] > (float) $c['price']) ? $c : $p;
});
Получаю ошибку
Warning: Trying to access array offset on value of type null in C:\server\domains\localhost\app\controllers\products.php on line 93
93 строка это где return
Ответы (1 шт):
Автор решения: splash58
→ Ссылка
Вы неправильно распоряжаетесь аргументами функции и возвращаемым значением.
До php 7.2 остается проблема установки начального значения, заведомо большего, чем все цены в массиве. Позже можно подставить PHP_FLOAT_MAX
echo $minPrice = array_reduce($data, function($c, $i) {
return ($c > (float) $i['price']) ? (float) $i['price'] : $c;
}, PHP_FLOAT_MAX);