построение "дерева"

berkut

Новичок
построение "дерева"

Подскажите с задачкой: есть 2 массива - по сути, первый является списком корневых элементов,
а второй это "путь" в глубь дерева, начинающийся от корня.
PHP:
$arr_1 = array(2=>'два', 5=>'five', 1=>'one',);
$arr_2 = array(5=>'five', 7=>'seven', 10=>'ten',);
Нужно объеденить эти 2 массива в один, что-бы результирующий массив можно было вывести рекурсивно.
Т.е. в итоге должно быть что-то вроде:
PHP:
$arr_res = array(2=>'два', 5=>array('five'=>array(7=>array('seven'=>array(10=>'ten')))), 1=>'one',);
На ум приходит только обход $arr_2 и впихивание его эл-ов в 1-й массив путём eval
 

_vampiro_

Новичок
а если в первом и втором элементы с одинаковыминдексом? :) чего делать?
 

berkut

Новичок
_vampiro_ в примере так оно и есть
Popoff я что-то никак не додумаюсь, как в цикле вкладывать массивы друг в друга :(
 

_vampiro_

Новичок
Ладно.. на пальцах:

PHP:
$arr_1 = array(2=>'два', 5=>'five', 1=>'one',); 
$arr_2 = array(5=>'five', 7=>'seven', 10=>'ten',1=>'адын');
1=>'адын'
ты будешь цеплять к '1'=>'one' или к 10=>'ten' ?
 

berkut

Новичок
_vampiro_ говорю-же - дерево.
1=>'one' и 1=>'адын' - таких случаев не может быть.
 

_vampiro_

Новичок
Хм...
PHP:
$arr_1 = array(2=>'два', 5=>'five', 1=>'one',);  
$arr_2 = array(5=>'five', 7=>'seven', 10=>'ten',1=>'one');
А в этой ситуации... нижнее 1 - это ветка или продолжение 10=>?


Просто в такой ситуации тебе надо сначала вытащить в отдельные элементы "ветки" и потом с конца образовывать нужные массивы, которые потом прилеплять. [m]end[/m], [m]prev[/m].
PHP:
$temp_arr[$cur_key]=$temp_arr;
Щас писать не могу - поезд... но мыслю даю.
 
Сверху