Вложеный цикл и break

Вложеный цикл и break

Здравствуйте!
Возникла интересная ситуация. У меня в коде программы используеться два цикла, один из них while, а другой, вложеный в него foreach. Когда делаю break по условию из foreach, он останавливаеться - это естественно. А как остановить while из foreach?
ниже приведён код программы:
PHP:
while(true)
{
foreach($somevar as $val) // somevar - масив данных из ф-ции fetch_array;
{
if ($val=="somevalue"){break;} // при это делаеться остановка цикла foreach
}
}
Если не сложно, конечно, натолкните на мысль как сделать остановку while.
Заранее благодарен!
 

Popoff

popoff.donetsk.ua
Curly-fingers
а для чего у тебя бесконечный цикл while служит?
 

Кром

Новичок
>а для чего у тебя бесконечный цикл while служит?
Наверное, чтобы foreach в два раза быстрее работал.

ksnk Вообще, break levels в 6 php собираются убрать. Поэтому лучше так больше не делать.
 

Кром

Новичок
>в пхп6 собираются убирать dynamic break levels.

Вот этот момент я не учел. Так или иначе ни dynamic break levels ни break levels не являются украшением кода.
 
Доброе утро!
Извините, что не отвечал, спал :)
Popoff
Этот скрипт запускаеться с помощью крона. Основная задача его - взять курсы валют с сайта forex (это не грабёж, просто ведение статистики по дням, часам и т.д.). Использую file_get_contents. Как извесно с первой попытки может не взять данные с сервера. Не могу теоритически сказать почему, но практически, уверен что бывает с второго-третьего раза забирает данные. И так он их будет забирать, пока не забирёт :) (для того while). А потом себе foreach, который разбирает "всё что взяли", с помощью регулярных выражений и записывает нужные данные в БД. Вот так всё просто :)
Кром
Нет. Ускорение этому скрипту не нужно, главное качество... :)
Frol
Т.е. присвоить циклу $var (не знаю пока как, или не так думаю) и сделать break $var?

Спасибо всем. Буду пробовать.
Один мудрый человек сказал: "Если долго мучиться, что нибудь получиться", а в основно для того кто учиться, а учимся мы всегда, так и бывает, знаю по себе.

P.S.: Хотел выразить отдельну благодарность Sergey Kolesnichenko, который создал статью ".Регулярные выражения, Часть I и II", помогла очень мне
 
bkonst

Если тебе ".. хочется странного?...", то используй
Что есть разница, кроме того что все команды начнут испольняться сразу, а потом условие.
PHP:
do
{
foreach($somevar as $val)
{
if ($val == "someval"){break;}
}
}
while(true)
-~{}~ 19.09.06 15:51:

Я наверно, буду использовать "флаг" и не буду выдумывать велосипед. Спасибо всем учасникам темы.
 

bkonst

.. хочется странного?...
Вообще-то, использование do {...} while (..) выглядело бы примерно так:
Код:
do {
  $data = fetch();
  $parsed = parse($data);
} while (!$parsed);
А вот использование бесконечных циклов и break - это действительно "хочется странного".
 
использование бесконечных циклов и break - это действительно "хочется странного"
Почитай зачем:
Как извесно с первой попытки может не взять данные с сервера. Не могу теоритически сказать почему, но практически, уверен что бывает с второго-третьего раза забирает данные. И так он их будет забирать, пока не забирёт (для того while).
 

bkonst

.. хочется странного?...
Я умею читать. А ты-то прочел, что я написал?
 

CMD

Новичок
Curly-fingers
хехе :) пинаю идею

bkonst имел ввиду что parse() может возвращать true/false значения


хыхы. и вообще юзать file_get_content для ресурсов поза своим сервером это имхо дикий изврат. сложно через курл или сокеты сделать?
 
Сверху