使用php和mysql进行递归/嵌套循环

时间:2013-11-06 08:45:10

标签: php mysql loops recursion nested

我有一个动态mysql表,可以有多个动态层。为了更好地理解这种情况,这里有一个mysql表示例:

  • 姓名------家长
  • 地球------无
  • 摇滚------地球
  • 沙------地球
  • 沙漠------沙
  • 山------摇滚
  • 水------无
  • 河------水
  • 海洋------水
  • 尼罗河------河
  • 石头------摇滚
  • ....

我想要一个嵌套或递归的循环,它将获取上面的数据并使用嵌套的ul显示如下。

  • 地球
      • 沙漠
      • 尼罗河
    • 海洋

1 个答案:

答案 0 :(得分: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>';
}