-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 回答