0

$ categories 변수는 다음 JSON 데이터를 반환합니다. 이 변수에서 Tree-> Branches in PHP를 빌드하고 싶습니다. 어떤 생각?PHP에서 분기를 사용하여 트리 만들기

+ 공공
- 일렉트로닉스
.....- 컴퓨터
........ + 아이 패드 태블릿
..... + 조명
..... + 홈 Applicances
+ 스포츠

{ 
"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

, 당신은'json_decode' 사용해야합니다 감사합니다 : 나는 Josan에 동의 http://php.net/manual/en/function.json-decode.php –

+0

을, json_decode를 먼저 사용하여 중첩 된 배열 형식으로 가져와야합니다. 그러면 데이터를 조작하기가 쉽습니다. – zenwraight

+0

원하는 결과가 어떻게 보이는지 보여주십시오. –

답변

0

이 솔루션은 내 문제에 대해 작동합니다. 이 데이터를 조작하기 전에 @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; 
관련 문제