0

このスクリプトを使用して、階層カテゴリを持つ配列を作成します。

$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;
    }
}

要素配列のレベルを取得するにはどうすればよいですか?これは例です:

  1. 猫A (レベル0)
    • サブキャット1 (レベル1)
      • Sub_Sub_Cat 1 (レベル2)
      • Sub_Sub_Cat 2 (レベル2)
    • Sub_Cat 2 (レベル1)
  2. 猫B (レベル0)
  3. 猫C (レベル0)

そしてここにソースがあります:

カテゴリ階層(PHP / MySQL)

4

2 に答える 2

0

リストを作成するときにも追加する必要があります。これは基本的に 2 つに分かれています。

  • 要素に親がない場合、そのレベルは 0 です。設定します。
  • 要素に親がある場合、親に到達し、そのレベルを選択し、それに 1 つ追加して設定します。

データがどのようにソートされているかに応じて、これは既に持っている反復でオンザフライで実行するか、最初のラウンドで親を持たないものだけを最初に追加してから、反復してレベルを追加する必要があります。子どもたち。

于 2012-08-14T21:50:01.270 に答える