![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Predator199 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 412 Регистрация: 1.2.2012 Репутация: -3 Всего: -4 |
Какой цикл лучше использовать, foreach или while. Что быстрей?
Это сообщение отредактировал(а) Predator199 - 30.11.2012, 17:49 |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 16 Всего: 55 |
Да у них совершенно разное предназначение.
foreach перебирает весь массив, при этом обращаясь к нему всего раз. Если же сделать while($i < count($array)) то мы получим тот же эффект, но уже с постоянным обращением к count(). И помощью foreach нельзя сделать так:
А с помощью while нельзя перебрать ассоциативный массив. В большинстве случаев одно другим просто так не заменишь. Скажите сначала, где и как вы их сравниваете, а потом уж можно будет подумать. Это сообщение отредактировал(а) Arantir - 30.11.2012, 18:02 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| Predator199 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 412 Регистрация: 1.2.2012 Репутация: -3 Всего: -4 |
Не, я их не сравниваю. Просто могу воспользоваться тем или сделать через другой. На данный момент мне проще через foreach. Сделать 1 запрос к бд, получить массив со всеми нужными полями(записями). Перебрать(через foreach) и вывести результат всех записей. Или не использовать циклы, достать то что нужно. Но уже что та 1.
Вот и задумался, какой быстрей обработает. Достанет все записи из бд. Это сообщение отредактировал(а) Predator199 - 30.11.2012, 18:06 |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 16 Всего: 55 |
Вы используете fetch_all, а потом все это перебираете, или как? У вас слишком абстрактные объяснения =)
Использовать fetch_all, а потом перебирать его через foreach - довольно быстрый вариант. Но, что очевидно, он использует много памяти, так как нужно держать там сразу все строки со всеми их полями. Если вы берете с БД сразу очень много строк, то лучше разбирать результат построчно через while и fetch_array Это сообщение отредактировал(а) Arantir - 30.11.2012, 23:46 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |