Forum Webscript.Ru

Программирование => PHP => Тема начата: CGVictor от 09 Августа 2004, 13:06:52

Название: Глубокая вложенность циклов
Отправлено: CGVictor от 09 Августа 2004, 13:06:52
Ситуация такая: по ходу работы скрипта нужно много раз вкладывать циклы перебора массива.
[off]foreach($a as $b) {fname($b);};
function fname($b) {foreach($b as $c){...;} и т.д., циклы разные (foreach, for, while...).[/off]

И вот: после вложения этак двадцатого переборы просто не выполняются. То есть один раз вызывается, и переходит дальше по программе.

Что это? Как бороться?
Название: Глубокая вложенность циклов
Отправлено: Altaxar от 12 Августа 2004, 12:58:08

$mas[1]=2;
for($i=1;$i<30;$i++)
$mas[1]=$mas;


fname($mas);
function fname($b) {
foreach($b as $c){
if(is_array($c)) fname($c);
else echo $c;
}};

Как видеш он и до 30 этажа доходит(я даже 60 брал всеравно работает), мне кажется у тебя проблема с тем сколько ты можеш резервировать памени на сервере, 20-ти мерный масивчик нечго себе что задумал :-).
Как боротся? попробуй както его разбить, или записать в фаил и работать по кускам.
Название: Глубокая вложенность циклов
Отправлено: CGVictor от 14 Августа 2004, 16:44:02
Kneaz
Да, похоже, это мое личное.. :)
Сейчас переписал по-другому - работает. Что и требовалось...

Цитировать
Kneaz:
20-ти мерный масивчик нечго себе что задумал :-).

На самом-то деле измерений всего девять, но там рекурсивная обработка :)
[off]Естественно, на сервер в Инете я это пихать не буду[/off]