樹狀 無限分類
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 美國
給你個有趣的玩法(具體有什麼用也不曉得)
$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;
|-世界 | |-中國 | \-湖南 \-美國
灰常感謝!痛哭流涕!!折騰幾天了,,,