Сравнение while, for & foreach по скорости и удобству

animad

Новичок
Что быстрее?

Народ, а что из ниже перечисленного будет быстрее работать:

1. for(reset($v); $key($v); next($v))

2. while(list($key,$val)=each($v))

Заранее благодарен.
 

Ваня-Ваня

Guest
Если учесть, что второму варианту тоже нужен ресет, то разницы, я думаю, никакой.

Не тем ты вопросом озаботился. Пустым.
я с трудом себе представляю ассоциативный массив такого размера, чтобы разница в способах перебора составила хотя бы сотую долю секунды.

а для нумерованных быстрее всего будет, естественно, фор, поскольку он не двигает никакой пойнтер, а просто обращается сразу по индексу.

поскольку же для ассоциатиывных нет ничего удобнее, чем foreach, то я настоятельно рекомендую тебе забыть оба перечисленных способа.
 

Oleg Marchuk

Человек
Re: Что быстрее?

Автор оригинала: animad
Народ, а что из ниже перечисленного будет быстрее работать:

1. for(reset($v); $key($v); next($v))

2. while(list($key,$val)=each($v))

Заранее благодарен.
for($i=0; $i<count($ar); $i++) {} - для простіх массивом самый быстрый.

Для ассоциативных - время будет приблизительно одинаковым.
Но for и foreach чуть-чуть быстрее while(list))
 

Ваня-Ваня

Guest
олег, поясни мне, пожалуйста - просто для общего моего развития - чего ты написал такого, чего не было в моем посте?
 

Oleg Marchuk

Человек
Хорошо.

Окинем взгядом страницу и поищем все слова for.
Итак. есть два варианта:


for(reset($v); $key($v); next($v))
for($i=0; $i<count($ar); $i++) {}
Ты говоришь, просто "for" и имеешь ввиду второй из выше перечисленных. Человек, который задавал вопрос думает о первом.

Я просто уточнил и добавил оченку времени для методов перебора ассоциативных массивов. Ты говоришь
нет ничего удобнее
, а я дал оценку.
 
Сверху