Существует несколько решений для этой проблемы в зависимости от того, что вам нужно в качестве выхода. Вот два из них:
Решение 1
Получить самую низкую цену (число):
$prices = array();
foreach ($this->cart->getProducts() as $product) {
array_push($prices, $product['price']);
}
return min($prices); // return or do w/e with the lowest price
Проверьте, если все значения одинаковы (True
, если все то же самое, False
если нет):
return count(array_unique($prices) == 1);
Что мы делаем здесь, подсчет количества уникальных записей (array_unique удаляет все дубликаты) и проверьте, равно ли оно 1 (= все одинаковы).
Решение 2
Получить продукт (объект) с самой низкой ценой:
$prices = array(); // necessary for the "all equals check"
foreach($this->cart->getProducts() as $product) {
if(!isset($cheapestProduct) || $cheapestProduct['price'] > $product['price']) {
$cheapestProduct = $product;
}
array_push($prices, $product['price']); // necessary for the "all equals check"
}
return $cheapestProduct;
Проверьте, если все значения одинаковы (если вы не будете нуждаться в этом, вы можете удалите две прокомментированные строки выше):
return count(array_unique($prices) == 1);