Bonjour à tous,
j'ai un problème qui me taraude depuis quelques temps.
j'ai un tableau qui renvoie ceci:
je cherche à créer un tableau compatible json, c'est à dire de la forme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Array ( [0] => Europe [1] => West [2] => Germany [3] => France [4] => Switzerland [5] => East [6] => Czech Republic [7] => Slovakia [8] => Poland // etc ... )
pour trouver les enfants, j'ai une fonction qui flagge les pays, (en gros si le pays est une région, alors il a des enfants). Pour ce faire j'ai essayé d'utiliser une fonction récursive:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 $array= array( array("pays"=>"Europe", "enfants"=>array( array("pays"=>"West", "enfants"=> array( array("pays"=>"Germany"), array("pays"=>"France"), array("pays"=>"Switzerland") ) ), array("pays"=>"East", "enfants"=> array( array("pays"=>"Czech Republic"), array("pays"=>"Slovakia"), array("pays"=>"Poland") ) ) ) ) );
il me semble que c'est la bonne méthode, mais ca ne me donne pas ce que je souhaite... je m'emmêle entre array_push, array_merge etc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 function ListArray($tb) { $connect=palo_init('localhost','7777','admin','admin'); $rettab=array(); // foreach element of the list foreach($tb as $tb_elt) { //element is consolidated : call the recursive function to list the children if(palo_etype($connect,'Demo','Regions',$tb_elt)=='consolidated') { array_push($rettab,array("title"=>$tb_elt)); array_push($rettab,array("children"=>ListArray($tb_elt))); } else //basis element { array_push($rettab,array("title"=>$tb_elt)); } } return $rettab; }
une idée ? je ne sais pas trop si mon problème est clair ou pas
merci par avance pour votre aide (toujours précieuse)
Partager