$minVal
и $maxVal
не определены до вызова поиска в массиве.
// Find the values
$minIndex = array_search($minVal, $prices);
$maxIndex = array_search($maxVal, $prices);
И array_search не находит никакого значения. Он находит ключи: Возвращает ключ для иглы, если он найден в массиве, иначе FALSE.
$minIndex
равно FALSE
, а $maxIndex
также равно FALSE
.
Значения также неверны ...
// Get the values
$min = $prices[$minIndex]; // $min = $prices[FALSE]
$max = $prices[$maxIndex]; // $max = $prices[FALSE]
Возможное решение:
$minValue = FALSE;
$maxValue = 0;
foreach ($arr['items'] as $item) {
if (isset($item['product']['inventories'][0]['price']) !== false) {
$price = $item['product']['inventories'][0]['price'];
$prices[] = $price;
if ( ! $minValue || $minValue < $price) {
$minValue = $price;
}
if ($price > $maxValue) {
$maxValue = $price;
}
}
}
Помимо
if (isset($item['product']['inventories'][0]['price']) !== false) { ... }
является избыточным тестом. Это точно так же, как
if (isset($item['product']['inventories'][0]['price'])) { ... }