2010-06-08 6 views
1

나는 HTML과 중첩 된 div에 알려지지 않은 심도의 다차원 배열을 처리하는 재귀 함수를 작성하는 데 머리를 쓰려고 노력했다. 나는 그것이 케이크 조각이어야한다고 생각했다. 그러나 부정. 여기 PHP : 다차원 배열을 HTML로 서식 지정 하시겠습니까?

내가 여기까지와 온 내용은 ​​다음과 같습니다

function formatHtml($array) { 
    $var = '<div>'; 

    foreach ($array as $k => $v) { 

      if (is_array($v['children']) && !empty($v['children'])) { 
       formatHtml($v['children']); 
      } 
      else { 
       $var .= $v['cid']; 
      } 
    } 

    $var.= '</div>'; 

    return $var; 
} 

을 그리고 여기 내 배열 : 당신은 하나의 중요한 부분을 놓치고

Array 
(
    [1] => Array 
     (
      [cid] => 1 
      [_parent] => 
      [id] => 1 
      [name] => 'Root category' 
      [children] => Array 
       (
        [2] => Array 
         (
          [cid] => 2 
          [_parent] => 1 
          [id] => 3 
          [name] => 'Child category' 
          [children] => Array() 
         ) 
       ) 
     ) 
) 

답변

2

: 당신은 formatHtml()에 재귀 호출을 할 때 실제로 어디서나 반환 된 콘텐츠를 포함하지 않습니다! $var에 추가하면 훨씬 좋은 결과를 얻을 수 있습니다.

function formatHtml($array) { 
    $var = '<div>'; 

    foreach ($array as $k => $v) { 

      if (is_array($v['children']) && !empty($v['children'])) { 
       $var .= formatHtml($v['children']); 
      } 
      else { 
       $var .= $v['cid']; 
      } 
    } 

    $var.= '</div>'; 

    return $var; 
} 
관련 문제