PHP → Как найти всех родителей элемента в иерархическом (древовидном) массиве
Есть массив:
$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 )
Комментарии
Огромное Вам СПАСИБО!!!
Отлично, спасибо. Очень сэкономили время.
Оставить комментарий