2026, 새로운 도약을 시작합니다.

배열 질문입니다. 채택완료

카테고리 구성을 하고있는데요

=================

idx  cate(varchar)  parent(int)

1       test

2      test-a                1

3      test-b                1

=================

parent가 없으면 1뎁스이고

있으면 idx값을 넣어주는데요 

이것을 배열로 처리하려고할때

[1] => Array

(

  [cate] => test

  [sub]  => Array(

            [0] => test-a

            [1] => test-b

  )

)

배열을 이렇게 만들려고하는데 잘안되네요ㅜ 도와주세요

답변 3개

채택된 답변
+20 포인트
Copy


$query = sql_query("SELECT * FROM test");

while($rows = sql_fetch_array($query)) {

    if(!$rows['parent']) $arr[$rows['idx']]['cate'] = $rows['cate'];

    if($rows['parent']) $arr[$rows['parent']]['sub'][] = $rows['cate'];

}

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

먼저 부모 카테고리만 쿼리해서 루프를 돌리고

루프 안에서 자식카테고리를 쿼리해서 루프로 배열에 넣어 주면 되겠습니다.

예)

Copy


$arr = array();

$res = sql_query(" select * from 카테고리테이블 where parent='' order by idx asc ");

for($i=0;$row=sql_fetch_array($res);$i++){

   $arr[$row['idx']]['cate'] = $row['cate']; 

   $sres = sql_query(" select * from 카테고리테이블 where parent='".$row['idx']."' order by idx asc ");

    for($j=0;$row2=sql_fetch_array($sres);$j++){

      $arr[$row['idx']]['sub'][$j] = $row2['cate'];

  }

}

 

print_r2($arr);

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

자식 필드에 값이 없으며너 배열[ 로우[idx] ] [cate]  = 로우[cate]

있으면 배열[ 로우[parent] ] [sub] [ 카운트 ] = 로우[cate]

형식으로 하시면 될거 같네요 카운트도 따로 만드시고요 대충 이런식일거 같네요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고