| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Какой из циклов быстрей. |
| Автор: Predator199 30.11.2012, 17:46 |
| Какой цикл лучше использовать, foreach или while. Что быстрей? |
| Автор: Arantir 30.11.2012, 17:56 | ||
| Да у них совершенно разное предназначение. foreach перебирает весь массив, при этом обращаясь к нему всего раз. Если же сделать while($i < count($array)) то мы получим тот же эффект, но уже с постоянным обращением к count(). И помощью foreach нельзя сделать так:
А с помощью while нельзя перебрать ассоциативный массив. В большинстве случаев одно другим просто так не заменишь. Скажите сначала, где и как вы их сравниваете, а потом уж можно будет подумать. |
| Автор: Predator199 30.11.2012, 18:03 |
| Не, я их не сравниваю. Просто могу воспользоваться тем или сделать через другой. На данный момент мне проще через foreach. Сделать 1 запрос к бд, получить массив со всеми нужными полями(записями). Перебрать(через foreach) и вывести результат всех записей. Или не использовать циклы, достать то что нужно. Но уже что та 1. Вот и задумался, какой быстрей обработает. Достанет все записи из бд. |
| Автор: Arantir 30.11.2012, 23:45 |
| Вы используете fetch_all, а потом все это перебираете, или как? У вас слишком абстрактные объяснения =) Использовать fetch_all, а потом перебирать его через foreach - довольно быстрый вариант. Но, что очевидно, он использует много памяти, так как нужно держать там сразу все строки со всеми их полями. Если вы берете с БД сразу очень много строк, то лучше разбирать результат построчно через while и fetch_array |