1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| $pages = array(
1 => array('label'=>'Home', 'slug'=>'home', 'parent'=>0),
2 => array('label'=>'About us', 'slug'=>'about-us', 'parent'=>0),
3 => array('label'=>'Issue', 'slug'=>'issue', 'parent'=>2),
4 => array('label'=>'Background', 'slug'=>'background', 'parent'=>2),
5 => array('label'=>'Profile', 'slug'=>'profile', 'parent'=>2),
6 => array('label'=>'Test', 'slug'=>'test', 'parent'=>2),
7 => array('label'=>'Procedures', 'slug'=>'procedures', 'parent'=>6),
8 => array('label'=>'Company development plan', 'slug'=>'company-development-plan', 'parent'=>2),
3 => array('label'=>'Team', 'slug'=>'team', 'parent'=>2),
10 => array('label'=>'Solutions', 'slug'=>'solutions', 'parent'=>0),
11 => array('label'=>'News & events', 'slug'=>'news-events', 'parent'=>0),
12 => array('label'=>'Partners', 'slug'=>'partners', 'parent'=>0),
13 => array('label'=>'Contact us', 'slug'=>'contact-us', 'parent'=>0)
);
function recurse_tree($array, $id) {
$result = array();
foreach ($array as $key => $node) {
if ( $key == $id ) {
array_push($result, array('id' => $key, 'label' => $node['label'], 'slug' => $node['slug'], 'parent' => $node['parent']));
if ( $node['parent'] > 0 ) array_push($result, recurse_tree($array, $node['parent']));
}
}
return $result;
}
echo '<pre>';
print_r(recurse_tree($pages, 7));
echo '</pre>'; |
Partager