ホームページ >バックエンド開発 >PHPチュートリアル >PHP Infinitus 分類は参照スパニング ツリーを巧みに使用します_PHP チュートリアル

PHP Infinitus 分類は参照スパニング ツリーを巧みに使用します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:31:381128ブラウズ

まずコードの実装を見てみましょう

れーれー
出力結果

れーれー
これは本当に素晴らしく、コードは簡潔で簡潔で、再帰は必要なく、実行速度も速いです。たまたまウェブサイトで見かけてとても便利だったので保存してみんなにシェアしました。

---------------------------------------- 下のボックスには、ユーザーから提起された質問が表示されます。前のブロガーさん、意味が分かりません、ごめんなさい! --------------------------------------

上記のスパニングツリー手法は 5 行に削減することもできます:
function generateTree($items){
    $tree = array();
    foreach($items as $item){
        if(isset($items[$item['pid']])){
            $items[$item['pid']]['son'][] = &$items[$item['id']];
        }else{
            $tree[] = &$items[$item['id']];
        }
    }
    return $tree;
}
$items = array(
    1 => array('id' => 1, 'pid' => 0, 'name' => '安徽省'),
    2 => array('id' => 2, 'pid' => 0, 'name' => '浙江省'),
    3 => array('id' => 3, 'pid' => 1, 'name' => '合肥市'),
    4 => array('id' => 4, 'pid' => 3, 'name' => '长丰县'),
    5 => array('id' => 5, 'pid' => 1, 'name' => '安庆市'),
);
print_r(generateTree($items));
Infinitus 分類データの上記のツリー構造の方法は学ぶ価値があります。しかし、このコードの実際の使用法は明らかではないと思います。フォーマットされたツリーデータを取得したい場合は、やはり再帰する必要があります:
れーれー
なぜ再帰的に取り出す必要があるのか​​理解できませんが、generateTree() の戻り値を json としてフロントエンドに出力するのが良いのではないでしょうか。

www.bkjia.com本当http://www.bkjia.com/PHPjc/762936.html技術記事まず、コード実装関数を見てみましょう。 $item ['pid']]['son'][] = $items[$item['id']]...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。