Автор Тема: Глубокая вложенность циклов  (Прочитано 2131 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Глубокая вложенность циклов
« : 09 Августа 2004, 13:06:52 »
Ситуация такая: по ходу работы скрипта нужно много раз вкладывать циклы перебора массива.
[off]foreach($a as $b) {fname($b);};
function fname($b) {foreach($b as $c){...;} и т.д., циклы разные (foreach, for, while...).[/off]

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

Что это? Как бороться?
LJ: Backslashed life (rss)

Оффлайн Altaxar

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 222
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.moroseac.ru/
Глубокая вложенность циклов
« Ответ #1 : 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

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Глубокая вложенность циклов
« Ответ #2 : 14 Августа 2004, 16:44:02 »
Kneaz
Да, похоже, это мое личное.. :)
Сейчас переписал по-другому - работает. Что и требовалось...

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

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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28