![]() |
есть ли способ управлять foreach?
думал спросить в теме для новичков, но потом решил что этот вопрос не относится к основам и может быть интересен не только мне.
интересно, есть ли способ управлять foreach? в частности - при определенном условии вернуть его на предыдущую позицию т.е. к примеру foreach($keys as $key) { echo $key; if($key == ...) prev($key); // не работает } суть в том, чтобы в следующей итерации снова повторился текущий ключ PS я знаю про for(), хочется обойтись без него |
Цитата:
Воспользуйся while тогда) |
http://ru2.php.net/manual/en/control-structures.foreach.php
Цитата:
PHP код:
Код:
1 |
если я правильно понял ТС:
PHP код:
Код:
1 |
ну да, в целом реализация позволяет добиться того что нужно
но тут надо сказать, почему я не хочу использовать for, в котором достаточно написать $i-- PHP код:
PHP код:
я знаю что фореач это копия, узрел как-то в учебнике по плюсам но это нисколько не оправдывает отсутствие такой возможности ну и вариант с each() ещё более ужасен в плане красоты кода судя по всему простого решения нет, поэтому всем спасибо, не заморачивайтесь над этим. просто у меня такие вот нездоровые стремления :) |
PHP код:
|
оператор foreaM ты гарантированно получишь каждый элемент, поскольку не потребуется вручную устанавливать цикл и запрашивать счетчик, а оператор, содержащийся в цикле, автоматически поместит элемент в указанную тобой переменную — достаточно лишь сослаться на нее в этом операторе.
|
какие мы умные, а теперь прочитайте первый пост темы
|
Оу, сори
|
PHP код:
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
Цитата:
PHP код:
|
уже писал - запусти скрипт, проверь, предварительно прочитай первый пост, не выставляй себя идиотом
|
Цитата:
//непонял наверное первый пост... |
Цитата:
|
Цитата:
|
Цитата:
PHP код:
Код:
|
можно ввести ещё одну переменную в которой будет храниться нужный индекс массива.
|
молодец, а говорил не знаешь
Цитата:
PS: И потом ты не вернул на предыдущую позицию, а просто повторил два раза текущую, разницу чуствуешь? |
Цитата:
|
а вот и нет, вопрос был про foreach )) Ну просто представь себе, нет while
|
вот смотри его код
PHP код:
$key этож не массив а если попробовать так(просто поправка скрипта ТСа :) ) PHP код:
|
вот теперь да)
|
тс пропал наверно уже неактуал тема ))
|
Поставим жирную точку!
Foreach не умеет возможности управлением индексом, он всегда идет от первого к последнему элементу. Но если вам все таки требуется такая возможность, то решается она с помощью цикла While Далее код демонстрирующий как это делается: PHP код:
|
| Время: 10:53 |