0

J'ai une variable $ categories renvoie les données JSON suivantes. Je voudrais construire un Tree-> Branches en PHP à partir de cette variable. Une idée?Construire l'arborescence avec des branches en php

+ public
- Electonics
.....- Computer
........ + iPad Comprimés
..... + Lumières
..... + Accueil Applicances
+ Sport

{ 
"categories": [ 
    { 
     "ID": 0, 
     "Name": "Public", 
     "Parent": 0, 
     "created": null, 
     "modified": "2017-03-13T15:16:58+00:00" 
    }, 
    { 
     "ID": 4, 
     "Name": "Electronics", 
     "Parent": 0, 
     "created": "2017-03-13T15:18:21+00:00", 
     "modified": "2017-03-13T15:18:21+00:00" 
    }, 
    { 
     "ID": 5, 
     "Name": "Computer", 
     "Parent": 4, 
     "created": "2017-03-13T15:18:34+00:00", 
     "modified": "2017-03-13T15:18:34+00:00" 
    }, 
    { 
     "ID": 12, 
     "Name": "iPad-Tablets", 
     "Parent": 5, 
     "created": "2017-05-15T13:55:38+00:00", 
     "modified": "2017-05-15T13:55:38+00:00" 
    } 
] 
} 
+0

Avant de pouvoir manipuler ces données, vous devez utiliser 'json_decode': http://php.net/manual/en/function.json-decode.php –

+0

Je suis d'accord avec Josan, vous devriez d'abord utiliser json_decode pour entrer dans le format de tableau imbriqué et ensuite il sera facile de manipuler les données – zenwraight

+0

S'il vous plaît montrer à quoi ressemble exactement le résultat souhaité. –

Répondre

0

Cette solution fonctionne pour mon problème. Merci @DanMiller

function generatePageTree($datas, $parent = 0, $depth=0){    
    if($depth > 100) return ''; //Make sure not to have an endless recursion 
    $tree = '<ul>'; 
    for($i=0, $ni=count($datas); $i < $ni; $i++){ 
     if($datas[$i]->Parent == $parent){ 
      $tree .= '<li>'; 
      $tree .= $datas[$i]->Name; 
      $tree .= generatePageTree($datas, $datas[$i]->ID, $depth+1); 
      $tree .= '</li>'; 
     } 
    } 
    $tree .= '</ul>'; 
    return $tree; 
} 
$tree=generatePageTree($categoriesOptions); 
echo $tree;