php可应用于面包屑导航的迭代寻找家谱树实现方法

这篇文章主要介绍了php可应用于面包屑导航的迭代寻找家谱树实现方法,涉及php迭代的技巧与应用方法,非常具有实用价值,需要的朋友可以参考下。

本文实例讲述了php可应用于面包屑导航的迭代寻找家谱树实现方法,分享给大家供大家参考,具体实现方法如下:

  1. <?php
  2. echo "<pre>";
  3. $area = array(
  4. array('id'=>1,'area'=>'北京','pid'=>0),
  5. array('id'=>2,'area'=>'广西','pid'=>0),
  6. array('id'=>3,'area'=>'广东','pid'=>0),
  7. array('id'=>4,'area'=>'福建','pid'=>0),
  8. array('id'=>11,'area'=>'朝阳区','pid'=>1),
  9. array('id'=>12,'area'=>'海淀区','pid'=>1),
  10. array('id'=>21,'area'=>'南宁市','pid'=>2),
  11. array('id'=>45,'area'=>'福州市','pid'=>4),
  12. array('id'=>113,'area'=>'亚运村','pid'=>11),
  13. array('id'=>115,'area'=>'奥运村','pid'=>11),
  14. array('id'=>234,'area'=>'武鸣县','pid'=>21)
  15. );
  16. function familytree($arr,$id){
  17. $list = array();
  18. while($id){
  19. $flag = false;
  20. foreach($arr as $v){
  21. if($v['id']==$id){
  22. array_unshift($list,$v['area']);
  23. $id = $v['pid'];
  24. $flag = true;
  25. }
  26. }
  27. if(!$flag){
  28. break;
  29. }
  30. }
  31. return $list;
  32. }
  33. print_r(familytree($area,113));
  34. ?>