Home >Backend Development >PHP Tutorial >这样的数组怎么让它树状显示呢?

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

WBOY
WBOYOriginal
2016-06-23 14:21:111143browse

树状 无限分类

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 '<ul>';  foreach($ar as $item) {    echo "$item[id] $item[name]";    foreach($item as $t) {      if(is_array($t)) {        tree(array($t));      }    }  }  echo '</ul>';}
	1 世界		2 中国			4 湖南		3 美国

<ul>1 世界<ul>2 中国<ul>4 湖南</ul></ul><ul>3 美国</ul></ul>

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

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

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

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:asp代码转phpNext article:跳转传值