Rumah >pembangunan bahagian belakang >tutorial php >php递归遍历实现无限分类

php递归遍历实现无限分类

墨辰丷
墨辰丷asal
2018-06-08 15:13:592207semak imbas

本篇文章主要介绍php递归遍历实现无限分类,感兴趣的朋友参考下,希望对大家有所帮助。

无限级分类是一种分类技巧,例如部门组织,文章分类,学科分类等常用到无限级分类,将其简单理解成分类就好了。其实我们仔细想一下,生活中的分类简直太多了,衣服可以分为男装和女装,也可以分为上衣和裤子,也可以根据年龄段分类。分类无处不在,分类显得“无限”。我这里就不说无限分类的必要性了。

本文实例讲述了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图片文件操作封装类

Atas ialah kandungan terperinci php递归遍历实现无限分类. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn