Intereting Posts
CSV-загрузка с помощью PHP / MySQL preg_match_all () – проблема с получением строки для соответствия в цикле foreach Как преобразовать таблицу DB с отношением родительского сына к многомерному массиву Компонент Symfony3 Form, пытающийся передать значение null в тип намеченного метода в PHP 7 как динамически установить конструктор библиотеки codeigniter Предупреждение: mysql_num_rows () ожидает, что параметр 1 будет ресурсом, boolean указан в /home/folder/public_html/folder/folder/login.php в строке 18 Функция PHP Rename Permission denied Количество дубликатов в sql-результатах и ​​отображение с помощью PHP Вопросы API EmberJS с использованием PHP Получить баланс счета Paypal Как мне обратиться к сообщению «Устаревшие: функция eregi () устарела …»? __autoload не может выдать исключение, если он не загружает класс при вызове статического метода Необходима помощь начинающего PHP как получить результаты в реальном времени с помощью jquery? Простой пример кометы с использованием php и jquery

есть ли способ в PHP перезапустить цикл в foreach или изменить тестовое значение в коммутаторе?

если я зацикливаюсь над массивом, и, находясь в середине одной из циклов, я обнаруживаю небольшую проблему, меняю … что-то … и нужно попробовать еще раз … есть ли способ вернуться к вершина цикла, не захватывая следующее значение из массива?

Я сомневаюсь, что это существует, но это будет какое-то ключевое слово, как continue или break . на самом деле, это было бы очень похоже на continue , за исключением того, что он не получает следующий элемент, он поддерживает то, что он имеет в памяти.

если ничего не существует, могу ли я вставить что-то в массив таким образом, чтобы он стал следующим ключом / значением в цикле?

возможно, с этим будет легче (array_shift ()) …

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

ну, мой вопрос развивается, поскольку я набираю это, поэтому, пожалуйста, просмотрите этот псевдо-код:

 foreach($storage_locations as $storage_location) { switch($storage_location){ case 'cookie': if(headers_sent()) { // cannot store in cookie, failover to session // what can i do here to run the code in the next case? // append 'session' to $storage_locations? // that would make it run, but other items in the array would run first... how can i get it next? } else { set_cookie(); return; } break; case 'session': set_session(); return; break; } } 

я уверен, что нет ключевого слова, чтобы изменить значение, протестированное против в среднем потоке переключателя … так как я должен реорганизовать этот код, чтобы получить мой переход на другой ресурс?

Не с foreach , но с более ручной итерацией массива:

 while (list($key, $value) = each($array)) { if (...) { reset($array); // start again } } 

http://php.net/each
http://php.net/reset

Похоже, что простое проваливание могло бы сделать трюк:

 switch ($storage_location) { case 'cookie': if (!headers_sent()) { set_cookie(); break; } // falls through to next case case 'session':