ホームページ > バックエンド開発 > PHPチュートリアル > PHPで実装した無限分類(再帰版)の例

PHPで実装した無限分類(再帰版)の例

WBOY
リリース: 2016-07-25 09:04:49
オリジナル
934 人が閲覧しました
  1. 配列

  2. (
  3. [0] => 配列
  4. (
  5. [id] => 1
  6. [名前] => dev
  7. [親id] => 0
  8. [子] => 配列
  9. (
  10. [0] => 配列
  11. (
  12. [id] => 2
  13. [名前] => php
  14. [親id] => 1
  15. [子] => 配列
  16. (
  17. [0] => Array
  18. (
  19. [id] => 3
  20. [name] =>smarty
  21. [parentid] => 2
  22. )

  23. [1] => 配列

  24. (
  25. [id] => 5
  26. [名前] => pdo
  27. [親 ID] => 2
  28. [子供] =>配列
  29. (
  30. [0] => 配列
  31. (
  32. [id] => 6
  33. [名前] => pdo-mysql
  34. [親id] => 5
  35. )

  36. )

  37. )

  38. )

  39. [1] =>配列

  40. (
  41. [id] => 7
  42. [name] => java
  43. [parentid] => 1
  44. )

  45. )

  46. )

  47. [1] => Array

  48. (
  49. [id] => 4
  50. [name] => life
  51. [parentid] => 0
  52. )
  53. )

复制代网

看有存更简单の実現方法

  1. $rows = array(

  2. array(
  3. 'id' => 1,
  4. 'name' => 'dev',
  5. 'parentid' => ; 0
  6. ),
  7. array(
  8. 'id' => 2,
  9. 'name' => 'php',
  10. 'parentid' => 1
  11. ),
  12. array(
  13. 'id' => 3 ,
  14. 'name' => 'smarty',
  15. 'parentid' => 2
  16. ),
  17. array(
  18. 'id' => 'life',
  19. 'parentid' => 0
  20. ),
  21. array(
  22. 'id' => 5,
  23. 'name' => 'pdo',
  24. 'parentid' => 2
  25. ),
  26. array(
  27. 'id' => ; 6,
  28. 'name' => 'pdo-mysql',
  29. 'parentid' => 5
  30. ),
  31. array(
  32. 'id' => 'java',
  33. 'parentid' => 1
  34. )
  35. );

  36. // 72648

  37. // 84072
  38. function findChild(&$arr,$id){
  39. $childs=array() ;
  40. foreach ($arr as $k => $v){
  41. if($v['parentid']== $id){
  42. $childs[]=$v;
  43. }
  44. }
  45. return $childs;
  46. }

  47. function build_tree($root_id){

  48. global $rows;
  49. $childs=findChild($rows,$root_id);
  50. if(empty($childs)){
  51. return null ;
  52. }
  53. foreach ($childs as $k => $v){
  54. $rescurTree=build_tree($v[id]);
  55. if( null != $rescurTree){
  56. $childs[$k][' childs']=$rescurTree;
  57. }
  58. }
  59. return $childs;
  60. }

  61. $tree=build_tree(0);

  62. echomemory_get_usage();
  63. print_r($tree);
  64. ?>

复制代
興味があるかもしれない記事: php無制限分類例(タオバオ模倣品分類) phpで実装した無限分類(再帰版)の例 PHP 配列を使用した無制限の分類 (データベースと再帰なし) 無制限の分類を再帰的に実装し、ドロップダウンリストを生成するためのPHPで書かれた関数


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート