首页 > 编程 > PHP > 正文

PHP递归遍历多维数组实现无限分类的方法

2019-11-21 22:09:28
字体:
来源:转载
供稿:网友

本文实例讲述了PHP递归遍历多维数组实现无限分类的方法。分享给大家供大家参考,具体如下:

<?php   //$data[]=array('id'=>1,'parentid'=>0,'name'=>'中国','img'=>'52091199');   $data[]=array('id'=>1,'parentid'=>0,'name'=>'中国');   $data[]=array('id'=>2,'parentid'=>0,'name'=>'美国');   $data[]=array('id'=>3,'parentid'=>0,'name'=>'韩国');   $data[]=array('id'=>4,'parentid'=>1,'name'=>'北京');   $data[]=array('id'=>5,'parentid'=>1,'name'=>'上海');   $data[]=array('id'=>6,'parentid'=>1,'name'=>'广西');   $data[]=array('id'=>7,'parentid'=>6,'name'=>'桂林');   $data[]=array('id'=>8,'parentid'=>6,'name'=>'南宁');   $data[]=array('id'=>9,'parentid'=>6,'name'=>'柳州');   $data[]=array('id'=>10,'parentid'=>2,'name'=>'纽约');   $data[]=array('id'=>11,'parentid'=>2,'name'=>'华盛顿');   $data[]=array('id'=>12,'parentid'=>3,'name'=>'首尔');   $tree=build_tree($data,0);   //echo memory_get_usage();   print_r($tree); function findChild(&$arr,$id){  $childs=array();  foreach ($arr as $k => $v){   if($v['parentid']== $id){    $childs[]=$v;   }  }  return $childs; } function build_tree($rows,$root_id){  $childs=findChild($rows,$root_id);  if(empty($childs)){   return null;  } foreach ($childs as $k => $v){  $rescurTree=build_tree($rows,$v['id']);  if( null != $rescurTree){  $childs[$k]['childs']=$rescurTree;  } }  return $childs; }?>

运行结果:

Array( [0] => Array  (   [id] => 1   [parentid] => 0   [name] => 中国   [childs] => Array    (     [0] => Array      (       [id] => 4       [parentid] => 1       [name] => 北京      )     [1] => Array      (       [id] => 5       [parentid] => 1       [name] => 上海      )     [2] => Array      (       [id] => 6       [parentid] => 1       [name] => 广西       [childs] => Array        (         [0] => Array          (           [id] => 7           [parentid] => 6           [name] => 桂林          )         [1] => Array          (           [id] => 8           [parentid] => 6           [name] => 南宁          )         [2] => Array          (           [id] => 9           [parentid] => 6           [name] => 柳州          )        )      )    )  ) [1] => Array  (   [id] => 2   [parentid] => 0   [name] => 美国   [childs] => Array    (     [0] => Array      (       [id] => 10       [parentid] => 2       [name] => 纽约      )     [1] => Array      (       [id] => 11       [parentid] => 2       [name] => 华盛顿      )    )  ) [2] => Array  (   [id] => 3   [parentid] => 0   [name] => 韩国   [childs] => Array    (     [0] => Array      (       [id] => 12       [parentid] => 3       [name] => 首尔      )    )  ))

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《php正则表达式用法总结》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表