| 12
 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