Есть массив:
$tree = array(
'1' => array(
'1.1' => array(),
'1.2' => array(),
'1.3' => array(
'1.3.1' => array(),
'1.3.2' => array(
'1.3.2.1' => array(),
'1.3.2.2' => array(),
'1.3.2.3' => array(),
),
'1.3.3' => array(),
),
),
'2' => array(
'2.1' => array(),
'2.2' => array(),
),
// ...
);
Нужно, зная ключ элемента, найти всех его родителей:
function parents($tree, $search_key, &$parents)
{
foreach ($tree as $key => $item)
{
if ($key == $search_key)
{
return true;
}
else if ($item && parents($item, $search_key, $parents))
{
$parents[] = $key;
return true;
}
}
return false;
}
Использование:
parents($tree, '1.3.2.2', $parents);
print_r($parents);
Результат:
Array
(
[0] => 1.3.2
[1] => 1.3
[2] => 1
)
Комментарии
Огромное Вам СПАСИБО!!!
Отлично, спасибо. Очень сэкономили время.
Добавить комментарий