2014-04-01 7 views
0

나는 지금 같은 주제와 관련된 다른 문제가 있지만 답변을받은 게시물이 있습니다. 원래 질문에 대해서는 여기를 참조하십시오. php display multilevel treenode menuPHP 다중 레벨 트리 노트 메뉴 재귀 표시

배열이 트리 노드로 표시되었으므로 완전히 재귀 적으로 보이지 않습니다. 첫 번째 요소가 자식 노드 일 때는 자식으로 표시되지 않습니다.

나는 krsort를하고 나서 ksort를 시도했다. 여기

function getChildren(&$rows, $p = 0) { 
    $r = array(); 
    krsort($rows); 
    foreach($rows as $row_id => $row) { 
     if ($row['parent_node']==$p) { 
      $r[$row['product_category_code']] = getChildren($rows, $row['product_category_code']); 
      unset($rows[$row_id]); 
     } 
    } 
    ksort($rows); 
    return $r; 
} 

배열 구조이다 :

array 
    0 => 
    array 
     'product_category_code' => string 'akamia' (length=6) 
     'product_category_desc' => string 'Akamia' (length=6) 
     'parent_node' => string 'summer-dress' (length=12) 
     'inactive' => string '0' (length=1) 
     'sort' => string '0' (length=1) 
     'created_by' => string '1' (length=1) 
     'created_date' => string '2014-04-01 10:03:42' (length=19) 
     'modified_by' => string '1' (length=1) 
     'modified_date' => string '2014-04-01 10:03:47' (length=19) 
    1 => 
    array 
     'product_category_code' => string 'bracelets' (length=9) 
     'product_category_desc' => string 'Bracelets' (length=9) 
     'parent_node' => string '' (length=0) 
     'inactive' => string '0' (length=1) 
     'sort' => string '0' (length=1) 
     'created_by' => string '1' (length=1) 
     'created_date' => string '2014-03-14 22:04:08' (length=19) 
     'modified_by' => string '1' (length=1) 
     'modified_date' => string '2014-03-14 22:09:05' (length=19) 
    2 => 
    array 
     'product_category_code' => string 'floral-dress' (length=12) 
     'product_category_desc' => string 'Floral Dress' (length=12) 
     'parent_node' => string '' (length=0) 
     'inactive' => string '0' (length=1) 
     'sort' => string '0' (length=1) 
     'created_by' => string '1' (length=1) 
     'created_date' => string '2014-03-14 22:09:49' (length=19) 
     'modified_by' => string '1' (length=1) 
     'modified_date' => string '2014-04-01 10:03:30' (length=19) 
    3 => 
    array 
     'product_category_code' => string 'flowery-bracelets' (length=17) 
     'product_category_desc' => string 'Flowery Bracelets' (length=17) 
     'parent_node' => string 'bracelets' (length=9) 
     'inactive' => string '0' (length=1) 
     'sort' => string '0' (length=1) 
     'created_by' => string '1' (length=1) 
     'created_date' => string '2014-03-14 22:09:16' (length=19) 
     'modified_by' => string '1' (length=1) 
     'modified_date' => string '2014-03-30 19:08:44' (length=19) 
    4 => 
    array 
     'product_category_code' => string 'small-flowery-bracelets' (length=23) 
     'product_category_desc' => string 'Small Flowery Bracelets' (length=23) 
     'parent_node' => string 'flowery-bracelets' (length=17) 
     'inactive' => string '0' (length=1) 
     'sort' => string '0' (length=1) 
     'created_by' => string '1' (length=1) 
     'created_date' => string '2014-03-14 22:08:35' (length=19) 
     'modified_by' => string '1' (length=1) 
     'modified_date' => string '2014-03-30 19:09:44' (length=19) 
    5 => 
    array 
     'product_category_code' => string 'summer-dress' (length=12) 
     'product_category_desc' => string 'Summer Dress' (length=12) 
     'parent_node' => string '' (length=0) 
     'inactive' => string '0' (length=1) 
     'sort' => string '0' (length=1) 
     'created_by' => string '1' (length=1) 
     'created_date' => string '2014-03-14 22:09:29' (length=19) 
     'modified_by' => string '0' (length=1) 
     'modified_date' => null 

합니다 (krsort/ksort)없이 출력이 잘못되는이 게재되어

  • 팔찌

    • 아카을
      • 꽃 장식 팔찌 012 3,516,
        • 작은 플라워 팔찌
    • 꽃 드레스
    • 여름 드레스

    이 출력되어야한다 :

    • 팔찌
      • 플라워 팔찌
        • 작은 플라워 팔찌
    • 꽃 드레스
    • 여름 드레스
      • 아카 마이
  • 답변

    0

    신경 쓰지 마라, 나는 대답을 얻었다. $p (function getChildren(&$rows, $p = 0))은 배열의 부모 노드가 비어 있으므로 0이 아닌 $p = ''이어야합니다. 바보 나. XD