ホームページ  >  記事  >  バックエンド開発  >  PHP Infinitus の分類方法とは何ですか?

PHP Infinitus の分類方法とは何ですか?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼オリジナル
2019-08-28 11:59:594668ブラウズ

PHP Infinitus の分類方法とは何ですか?

今日紹介するのは、PHP の Infinitus 分類技術ですが、Infinitus 分類を 2 つのタイプに分けます。具体的な方法は以下の通りです:

まずデータベースのテーブルを紹介しますが、データベースはタスクであり、データベースのテーブルもタスクです。

PHP Infinitus の分類方法とは何ですか?

#関連する推奨事項: 「

PHP チュートリアル

最初のメソッド (配列メソッド)

このメソッドは、実際には、生成された 2 次元配列に焦点を当てて、最初にすべてのデータをクエリします。

<?php
  //分类方法
  function make_list($parent,$deep = 0){
    global $tasks;//申明全局变量
    global $strArr;//申明全局变量
    $qianzhui = str_repeat(" ",$deep)."|--";
    foreach ($parent as $key => $value) {
      $strArr[] = $qianzhui.$value;
      if(isset($tasks[$key])){
        make_list($tasks[$key],++$deep);//递归调用函数
      }
    }
  }
  //数据库连接
  $dbc = mysqli_connect("localhost","root","1234","tasks");
  //拼接sql语句
  $q = "select task_id,parent_id,task from tasks where date_completed = &#39;0000-00-00:00:00:00&#39; order by parent_id,
  date_added asc";
  //执行sql
  $r = mysqli_query($dbc,$q);
  //遍历结果集
  while (list($task_id,$parent_id,$task) = mysqli_fetch_array($r,MYSQLI_NUM)) {
    //组成数组(一级键为parent_id,二级键为task_id,值为任务内容)
    $tasks[$parent_id][$task_id] = $task;
  }
  //打印数组
  echo "<pre class="brush:php;toolbar:false">";
  print_r($tasks);
  echo "
";   make_list($tasks[0]);   echo "

";
  //打印缩进数组
  print_r($strArr);
  echo "
"; ?>

PHP Infinitus の分類方法とは何ですか?

2 番目のメソッド (ルックアップ テーブル メソッド)

このメソッドは、実際には先頭のparent_id= のみをクエリします。0、および次に、再帰的メソッドを使用してクエリ条件を動的に生成し、各レコードの task_id を task_id として使用し、クエリ結果が空になるまで新しいラウンドのクエリを実行します。

rreeee

PHP Infinitus の分類方法とは何ですか?

以上がPHP Infinitus の分類方法とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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