ホームページ >バックエンド開発 >PHPチュートリアル >PHP 再帰的走査による無限分類の実現

PHP 再帰的走査による無限分類の実現

墨辰丷
墨辰丷オリジナル
2018-06-08 15:13:592208ブラウズ

この記事では主に無限分類を実現するための PHP 再帰走査について紹介します。興味のある方はぜひ参考にしてください。

無限レベル分類は、分類手法の 1 つです。たとえば、部門の組織化、記事の分類、主題の分類などによく使用されます。単純に分類と理解できます。実際、よく考えてみると、服は紳士服と婦人服、トップスとパンツに分けることができ、また年齢層によっても分類することができます。分類はどこにでも存在し、分類は「無限」であるように見えます。無限分類の必要性についてはここでは話しません。

この記事の例では、php 再帰を使用して無限分類を実現する方法を説明しています。詳細は次のとおりです。

<?php
$rows = array(
  array(
    &#39;id&#39; => 1,
    &#39;name&#39; => &#39;dev&#39;,
    &#39;parentid&#39; => 0
  ),
  array(
    &#39;id&#39; => 2,
    &#39;name&#39; => &#39;php&#39;,
    &#39;parentid&#39; => 1
  ),
  array(
    &#39;id&#39; => 3,
    &#39;name&#39; => &#39;smarty&#39;,
    &#39;parentid&#39; => 2
  ),
  array(
    &#39;id&#39; => 4,
    &#39;name&#39; => &#39;life&#39;,
    &#39;parentid&#39; => 0
  ),
  array(
    &#39;id&#39; => 5,
    &#39;name&#39; => &#39;pdo&#39;,
    &#39;parentid&#39; => 2
  ),
  array(
    &#39;id&#39; => 6,
    &#39;name&#39; => &#39;pdo-mysql&#39;,
    &#39;parentid&#39; => 5
  ),
  array(
    &#39;id&#39; => 7,
    &#39;name&#39; => &#39;java&#39;,
    &#39;parentid&#39; => 1
  )
);
// 72648
// 84072
function findChild(&$arr,$id){
  $childs=array();
   foreach ($arr as $k => $v){
     if($v[&#39;parentid&#39;]== $id){
       $childs[]=$v;
     }
  }
  return $childs;
}
function build_tree($root_id){
  global $rows;
  $childs=findChild($rows,$root_id);
  if(empty($childs)){
    return null;
  }
  foreach ($childs as $k => $v){
    $rescurTree=build_tree($v[id]);
    if( null !=  $rescurTree){ 
    $childs[$k][&#39;childs&#39;]=$rescurTree;
    }
  }
  return $childs;
}
$tree=build_tree(0);
echo memory_get_usage();
print_r($tree);
?>

要約: 上記は、内容全体です。この記事がすべての人に役立つことを願っています。学習は役立ちます。

関連する推奨事項:

PHP バーコードの定義と生成方法

php はファイル拡張子を決定して取得しますいくつかのメソッド

php画像ファイル操作カプセル化クラス

以上がPHP 再帰的走査による無限分類の実現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。