рекрсивный перебор многомерного массива

paDLa

Новичок
рекрсивный перебор многомерного массива

Всю голову сломал. помогите)))))))

есть массив типа:
PHP:
Array
(
    [0] => Array
        (
            [name] => Селантий
            [parent] =>
        )
    [1] => Array
        (
            [name] => Антоний
            [parent] =>
        )
    [2] => Array
        (
            [name] => Григор
            [parent] => Селантий
        )
    [3] => Array
        (
            [name] => Евлампий
            [parent] => Антоний
        )
    [3] => Array
        (
            [name] => Фарабунгий
            [parent] => Антоний
        )
)
нужно рекурсивно перебрать массив по полю parent (по родителям) и вывести
результат вида:

Селантий
Григор
Антоний
Евлампий
Фарабунгий

Пишу рекурсивную функцию в классе:

PHP:
class Debils () {

  function GenerateMap ($module_name) {

    for ($i = 0; $i <= count($this->_MAP_ARRAY); $i++) {
        if ($this->_MAP_ARRAY[$i]['parent'] == $module_name) {
        $content .= "<div 
id=\"bs_map_".$this->_MAP_ARRAY[$i]['page_level']."\"><a 
href=\"".$this->_MAP_ARRAY[$i]['link']."\">".$this->_MAP_ARRAY[$i]['name']."</a></div>";
        //$this->GenerateMap ($this->_MAP_ARRAY[$i]['parent']);
        }
    }
    return $content;
  }
}
в таком состоянии функция работет правильно но не является рекурсивной.
разремливаем строку $this->GenerateMap ($this->_MAP_ARRAY[$i]['parent']);
и вылетает апач

аналогичная функция с выборкой из БД вместо массива работает безупречно

в чем прогон?
 

tf

крылья рулят
paDLa я бы на твоем месте массив пересобрал
PHP:
array(Антоний=>array( Фарабунгий,Евлампий)
)
, отсортировал по ключам и не мучался.
хотя может бытьи не стоит
 

paDLa

Новичок
Рекурсивные функции - это те, которые вызывают сами себя.
Не понял, к чему вопрос?
 

Nest

Новичок
Этот вопрос относился до редактирования твоего первого поста
 

paDLa

Новичок
Автор оригинала: Nest
paDLa А Вы вообще знаете, что такое рекурсия?
Рекурсивные функции - это те, которые вызывают сами себя.
Не понял, к чему вопрос?

-~{}~ 26.04.06 17:10:

Автор оригинала: tf
paDLa я бы на твоем месте массив пересобрал
PHP:
array(Антоний=>array( Фарабунгий,Евлампий)
)
, отсортировал по ключам и не мучался.
хотя может бытьи не стоит
может это и выход
 

cDLEON

Онанист РНРСlub
PHP:
function Arr_Parse_Ext($arr)
	{
	while(list($key,$val)=each($arr))
		{
		if(is_array($val))
                           Arr_Parse_Ext($val);
		else
			echo $val;
	}
Вот тебе рекурсия. А дальше думай сам и подставляй к своей задаче.
Из CMS выдирал,ссылка на массив осталась ))) Отредактировано :)
 
Сверху