当前位置:Gxlcms > PHP教程 > 这样的数组怎么让它树状显示呢?

这样的数组怎么让它树状显示呢?

时间:2021-07-01 10:21:17 帮助过:4人阅读

树状 无限分类

Array(    [1] => Array        (            [id] => 1            [name] => 世界            [pid] => 0            [2] => Array                (                    [id] => 2                    [name] => 中国                    [pid] => 1                    [4] => Array                        (                            [id] => 4                            [name] => 湖南                            [pid] => 2                        )                )            [3] => Array                (                    [id] => 3                    [name] => 美国                    [pid] => 1                )        ))


回复讨论(解决方案)

本身就是树状,有pid还不简单么?递归就行了

$a = Array(  1 => Array(    'id' => 1,    'name' => '世界',    'pid' => 0,    2 => Array(      'id' => 2,      'name' => '中国',      'pid' => 1,      4 => Array(        'id' => 4,        'name' => '湖南',        'pid' => 2,      ),    ),    3 => Array(      'id' => 3,      'name' => '美国',      'pid' => 1,    ),  ),);tree($a);function tree($ar) {  if(! is_array($ar)) return;  echo '
    '; foreach($ar as $item) { echo "$item[id] $item[name]"; foreach($item as $t) { if(is_array($t)) { tree(array($t)); } } } echo '
';}
	1 世界		2 中国			4 湖南		3 美国

    1 世界
      2 中国
        4 湖南
      3 美国

给你个有趣的玩法(具体有什么用也不晓得)

$a = Array(  1 => Array(    // 'id' => 1,    'name' => '世界',    // 'pid' => 0,    2 => Array(      // 'id' => 2,      'name' => '中国',      // 'pid' => 1,      4 => Array(        // 'id' => 4,        'name' => '湖南',        // 'pid' => 2,      ),    ),    3 => Array(      // 'id' => 3,      'name' => '美国',      // 'pid' => 1,    ),  ),);$awesome = new RecursiveTreeIterator(      new RecursiveArrayIterator($a),      null, null, RecursiveIteratorIterator::LEAVES_ONLY  );  foreach ($awesome as $line)      echo $line . PHP_EOL;  

  |-世界  | |-中国  |   \-湖南    \-美国

灰常感谢!痛哭流涕!!折腾几天了,,,

人气教程排行