10. SCRIPTOMAN, даже не интересовался.
используй то что лучше понимаешь, тысячные доли секунды не аргумент для насилования мозга, а плохо осмысленный код, всяко хуже осмысленного, пусть и не оптимального.
в частности тут пример с while плохо осмыслен
<?php
while ($this = current($array) ){
do_something($this);
next($array);
}
?>
Хотя..
Если подумать, то foreach оптимальнее любого другого цикла, в случае перебора массива.
Он собственно за этим и создан.
While проверяет значение элемента true или false
При этом мы еще должны сами передвинуть каретку на следующий элемент.
а foreach просто идет по массиву, от индекса к индексу (не по ключу, а именно по внутреннему индексу эллемента массива)
так что я думаю, foreach оптимальнее
$t=file("diary.txt"); echo join('<br/>', $t).sizeof($t); - самый оптимальный код , а вообще где-то даже на визави была статья, что для неассоциативных массивов перебор в for быстрее, чем foreach, а уж тем более, чем этот current/next. Если не ошибаюсь, то последнее вообще использовалось в php 4 до появления foreach.
14. Im-ieee, for как раз медленнее, я уже написал как работает foreach, сравни с тем как работает for.
А ***статей тут много))
З.ы. где то на хабре были тесты обоих циклов, с минимальным разрывом победил foreach.
Добавлено через 01:40 сек.
З.ы.ы. в пхп все массивы ассоциативные.
Благодаря его гибкой типизации данных 1 == '1'
Виталик Альянс (12 Апреля 2012 / 14:51)
странно, я всегда почему-то считал что for работает быстрее чем foreach. погуглю малость по этому поводу, интересно
В фор присутствует математическое действие, и запрос элемента массива по ключу. Это уже медленнее, чем просто переход к следующему элементу
З.ы. сам не проверял, только читал
16. Vantuz, там и цикл не нужен вообще. (плохой пример, наверное) / проверил, действительно, почему-то foreach быстрее, хотя куча статей по оптимизации говорят обратное. Возможно, это для старых версий php.
Для выполнения действия необходимо авторизоваться!