首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

这样的数组如何让它树状显示呢

2013-09-08 
这样的数组怎么让它树状显示呢?Array([1] Array([id] 1[name] 世界[pid] 0[2] Array([id]

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

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
                )


        )

)

树状 无限分类
[解决办法]
$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;  



  
[解决办法]
-世界
  
[解决办法]
 
[解决办法]
-中国
  
[解决办法]
   \-湖南
    \-美国

热点排行