このスクリプトを使用して、階層カテゴリを持つ配列を作成します。
$refs = array();
$list = array();
$sql = "SELECT item_id, parent_id, name FROM items ORDER BY name";
$result = mysql_query($sql);
while($data = @mysql_fetch_assoc($result)) {
$thisref = &$refs[ $data['item_id'] ];
$thisref['parent_id'] = $data['parent_id'];
$thisref['name'] = $data['name'];
if ($data['parent_id'] == 0) {
$list[ $data['item_id'] ] = &$thisref;
} else {
$refs[ $data['parent_id'] ]['children'][ $data['item_id'] ] = &$thisref;
}
}
要素配列のレベルを取得するにはどうすればよいですか?これは例です:
- 猫A (レベル0)
- サブキャット1 (レベル1)
- Sub_Sub_Cat 1 (レベル2)
- Sub_Sub_Cat 2 (レベル2)
- Sub_Cat 2 (レベル1)
- サブキャット1 (レベル1)
- 猫B (レベル0)
- 猫C (レベル0)
そしてここにソースがあります: