读书人

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

发布时间: 2013-09-08 15:21:21 作者: rapoo

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

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;




[解决办法]
-世界

[解决办法]

[解决办法]
-中国

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

读书人网 >PHP

热点推荐