Здравствуйте уважаемые форумчане.
В PHP я новичок, и не могу реализовать правильно следующий алгоритм:
1. Перебор массива и вывод результатов в другой массив.
2. Извлечь из полученного массива наименьшее число.
Это скрипт в интернет магазине, вытягиваем массив цен товаров и выводим наименьшее.
Вот код цикла перебора и вывода поочередно цен на все товары.
<?php foreach ($pds as $p) { ?>
<?php $p_all = $this->model_catalog_product->getProduct($p['product_id']); ?>
<?php if (!$p_all['special']) { ?> // Если на товар акция
<?php echo round($p_all['price']); ?> // Вывод обычной цены
<?php } else { ?>
<?php echo round($p_all['special']); ?> // Вывод скидочной цены
<?php } ?>
<?php } ?>
Результатом выполнения этого цикла является строка со значениями цен.
А вывести нужно только одно, наименьшее.
Оч благодарен за любую помощь.
1. ITmaker - 30 Апреля, 2014 - 21:40:12 - перейти к сообщению
2. KingStar - 30 Апреля, 2014 - 22:22:45 - перейти к сообщению
сортируешь массив с помощью asort и первый ключ будет с минимальным значением
3. LIME - 30 Апреля, 2014 - 22:52:28 - перейти к сообщению
min()
вряд ли массив отсортируется в 1 проход
вряд ли массив отсортируется в 1 проход
4. ITmaker - 01 Мая, 2014 - 10:26:51 - перейти к сообщению
Насчет выборки с помощью min я понял, а вот как правильно написать? Интересует синтаксис именно в данном случае. Если бы был простой массив, то это не было бы для меня проблемой.
5. LIME - 01 Мая, 2014 - 12:41:01 - перейти к сообщению
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?PHP $min = 999999; ?>
- <?PHP foreach ($pds as $p) { ?>
- <?PHP $p_all = $this->model_catalog_product->getProduct($p['product_id']); ?>
- <?PHP if (!$p_all['special']) { ?> // Если на товар акция
- <?PHP $min = $p_all['price'] < $min ? $p_all['price'] : $min; ?>
- <?PHP } else { ?>
- <?PHP $min = $p_all['special'] < $min ? $p_all['special'] : $min; ?>
- <?PHP } ?>
- <?PHP } ?>
- <?PHP echo $min; ?>