Bonjour à tous,

j'ai un problème qui me taraude depuis quelques temps.

j'ai un tableau qui renvoie ceci:

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 ...
)
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
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")
          )
      )
    )
  )
);
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
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;
}
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.

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)