Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Какой из циклов быстрей. 
:(
    Опции темы
Predator199
  Дата 30.11.2012, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: -3
Всего: -4



Какой цикл лучше использовать, foreach или while. Что быстрей?


Это сообщение отредактировал(а) Predator199 - 30.11.2012, 17:49
PM MAIL   Вверх
Arantir
Дата 30.11.2012, 17:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Да у них совершенно разное предназначение.

foreach перебирает весь массив, при этом обращаясь к нему всего раз. Если же сделать while($i < count($array)) то мы получим тот же эффект, но уже с постоянным обращением к count().
И помощью foreach нельзя сделать так:
Код

$cont =  true;
while ($cont)
{
    if($somehing)
    {
    }
    else if ($something_else)
    {
    }
    else
    {
        $cont =  false;
    }
}

А с помощью while нельзя перебрать ассоциативный массив.

В большинстве случаев одно другим просто так не заменишь. Скажите сначала, где и как вы их сравниваете, а потом уж можно будет подумать.

Это сообщение отредактировал(а) Arantir - 30.11.2012, 18:02


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Predator199
  Дата 30.11.2012, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: -3
Всего: -4



Не, я их не сравниваю. Просто могу воспользоваться тем или сделать через другой. На данный момент мне проще через foreach. Сделать 1 запрос к бд, получить массив со всеми нужными полями(записями). Перебрать(через foreach) и вывести результат всех записей. Или не использовать циклы, достать то что нужно. Но уже что та 1.
Вот и задумался, какой быстрей обработает. Достанет все записи из бд.

Это сообщение отредактировал(а) Predator199 - 30.11.2012, 18:06
PM MAIL   Вверх
Arantir
Дата 30.11.2012, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 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
}
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0609 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.