글쓴사람 관리자
글쓴시간2008년 2월 4일 오전 0시 59분 12초
    제목[응답][응답][응답]배열관련 질문드립니다. 재귀호출?

수정했습니다. 원하시는대로 되는 것 같네요.

실행 결과

function flattenList($source_arr, &$target_arr, $depth=0, $endInfo=array()) {

    $i = 0;
    $s = sizeof($source_arr);

    array_unshift($endInfo, $depth);
    $currentEndInfo = array();

    foreach ($source_arr as $k=>$v) {
        $target_arr[$k] = $v;
        $target_arr[$k]['depth'] = $depth;
        $target_arr[$k]['isFirst'] = (0==$i);
        $children = $target_arr[$k]['child'];
        unset($target_arr[$k]['child']);

        if (++$i==$s) {    
            $currentEndInfo = $endInfo;
        }

        if (empty($children)) {
            $target_arr[$k]['endInfo'] = $currentEndInfo;
        } else {
            $target_arr[$k]['hasChild'] = true; // 추가된 부분
            flattenList($children, $target_arr, $depth+1, $currentEndInfo);
        }
    }
}


$arr =  ...;  // 
$category = array();

flattenList($arr, $category);
$tpl->assign('category', $category);

----------------------------


<!--{@ category}-->
    <!--{? .isFirst}-->
    <ul>
    <!--{/}-->
        <li>
           {.key_} : {.name}
    <!--{? !.hasChild}-->
        </li>
    <!--{/}-->
    <!--{@ .endInfo}-->
    </ul>
        <!--{? ..value_}-->
        </li>
        <!--{/}-->
    <!--{/}-->
<!--{/}-->


    이름
비밀번호
  배열관련 질문드립니다. 재귀호출? 08-02-03 2031 진룡
  [응답]배열관련 질문드립니다. 재귀호출? 08-02-03 1590 관리자
  [응답][응답]배열관련 질문드립니다. 재귀호출? 08-02-04 1241 진룡
>> [응답][응답][응답]배열관련 질문드립니다. 재귀.. 08-02-04 1036 관리자
 
Since 2003-03-03 hosted on vultr.com