-1

複数の動的層を持つことができる動的 mysql テーブルがあります。状況をよりよく理解するために、mysql テーブルのサンプルを次に示します。

  • 名前 ------ 親
  • 地球 ------ なし
  • 岩 ------ 大地
  • 砂 ------ 土
  • 砂漠 ------ 砂
  • 山 ------ ロック
  • 水 ------ なし
  • 川 ------ 水
  • 海 ------ 水
  • ナイル川
  • 石 ------ ロック
  • ....

上記のデータを取得し、ネストされた ul を使用して以下のように表示する、ネストされたまたは再帰的なループが必要です。

  • 地球
      • 結石
      • 荒野
      • ナイル
    • 海洋
4

1 に答える 1

1

Fraidoon、以下のように配列内のデータを調整し、コードを実行します。

    $myArray = array (
    'Earth' => 'None',
    'Rock' => 'Earth',
    'Sand' => 'Earth',
    'Desert' => 'Sand',
    'Mountain' => 'Rock',
    'Water' => 'None',
    'River' => 'Water',
    'Ocean' => 'Water',
    'Nile' => 'River',
    'Stone' => 'Rock'
);


recursiveUl ($myArray, 'None');

function recursiveUl ($myArray, $parent)
{
    echo '<ul>';
    foreach ($myArray as $c => $p)  {
        if ($p != $parent) continue;
        echo '<li>'.$c.'</li>';
        recursiveUl ($myArray, $c);
    }
    echo '</ul>';
}
于 2013-11-06T09:16:26.677 に答える