배열 질문입니다.
본문
카테고리 구성을 하고있는데요
=================
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
$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'];
}
자식 필드에 값이 없으며너 배열[ 로우[idx] ] [cate] = 로우[cate]
있으면 배열[ 로우[parent] ] [sub] [ 카운트 ] = 로우[cate]
형식으로 하시면 될거 같네요 카운트도 따로 만드시고요 대충 이런식일거 같네요
먼저 부모 카테고리만 쿼리해서 루프를 돌리고
루프 안에서 자식카테고리를 쿼리해서 루프로 배열에 넣어 주면 되겠습니다.
예)
$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);
답변을 작성하시기 전에 로그인 해주세요.