Здравствуйте.
function outTree($parent_id,$data) {
static $info=[];
if (isset($data[$parent_id])) {
foreach ($data[$parent_id] as $value) {
$links=[];
$db_query="select n_properties,name_value,link from ".DB_PREF."board_listv
where n_properties = ".$value['id_properties']." ";
list($kolvo_value,$data_value_prop)=obr_db_query_select_assoc($db_query);
if($kolvo_value){
foreach($data_value_prop as $one){
$links[]=$one['link'];
}
}
$info[$value['id_properties']]=$links;
outTree($value['id_properties'],$data);
}
}
return $info;
}
Пояснения:
1. $data - массив значений
array(3) {
[42]=> array(1) { [0]=> array(4) { ["id"]=> string(1) "7" ["n_category"]=> string(3) "389" ["id_properties"]=> string(2) "44" ["id_parent"]=> string(2) "42" } }
[43]=> array(1) { [0]=> array(4) { ["id"]=> string(1) "9" ["n_category"]=> string(3) "389" ["id_properties"]=> string(2) "42" ["id_parent"]=> string(2) "43" } }
[0]=> array(1) { [0]=> array(4) { ["id"]=> string(2) "10" ["n_category"]=> string(3) "389" ["id_properties"]=> string(2) "43" ["id_parent"]=> string(1) "0" } }
}
2. $parent_id - родительский id
В функции идет поиск значений , после чего значения перебираются массивом и собираются в новый из параметра link. В итоге я получаю след.результат
array(3) {
[43]=> array(7) { [0]=> string(8) "svobodno" [1]=> string(6) "studia" [2]=> string(11) "4-komnatnye" [3]=> string(11) "5-komnatnye" [4]=> string(11) "1-komnatnye" [5]=> string(11) "2-komnatnye" [6]=> string(11) "3-komnatnye" }
[42]=> array(2) { [0]=> string(9) "vtorichka" [1]=> string(11) "novostroika" }
[44]=> array(5) { [0]=> string(6) "derevo" [1]=> string(5) "block" [2]=> string(7) "monolit" [3]=> string(5) "panel" [4]=> string(7) "kirpich" }
}
Вопрос: как сделать, чтобы link наследовал родителя, если он есть?
Например вот так : 1-komnatnye и 1-komnatnye/vtorichka и 1-komnatnye/vtorichka/derevo