Heim > Backend-Entwicklung > PHP-Tutorial > php实现的无限分类(递归版本)的例子

php实现的无限分类(递归版本)的例子

WBOY
Freigeben: 2016-07-25 09:04:49
Original
939 Leute haben es durchsucht
  1. Array

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

  24. (
  25. [id] => 5
  26. [name] => pdo
  27. [parentid] => 2
  28. [childs] => Array
  29. (
  30. [0] => Array
  31. (
  32. [id] => 6
  33. [name] => pdo-mysql
  34. [parentid] => 5
  35. )
  36. )

  37. )

  38. )

  39. )

  40. [1] => Array

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

  47. )

  48. [1] => Array

  49. (
  50. [id] => 4
  51. [name] => life
  52. [parentid] => 0
  53. )
  54. )
复制代码

看有没有更简单的实现方法

  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' => 4,
  19. 'name' => 'life',
  20. 'parentid' => 0
  21. ),
  22. array(
  23. 'id' => 5,
  24. 'name' => 'pdo',
  25. 'parentid' => 2
  26. ),
  27. array(
  28. 'id' => 6,
  29. 'name' => 'pdo-mysql',
  30. 'parentid' => 5
  31. ),
  32. array(
  33. 'id' => 7,
  34. 'name' => 'java',
  35. 'parentid' => 1
  36. )
  37. );
  38. // 72648

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

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

  64. echo memory_get_usage();
  65. print_r($tree);
  66. ?>
复制代码
您可能感兴趣的文章: php无限分类的例子(仿淘宝商品分类) php实现的无限分类(递归版本)的例子 使用php数组实现的无限分类(不使用数据库与用递归) php写的一个递归实现无限分类生成下拉列表的函数


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage