找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1262|回复: 2

关于递归的疑问

[复制链接]
发表于 2013-10-10 09:02:08 | 显示全部楼层 |阅读模式 来自 中国–河北–石家庄
  1. <?php

  2. header("Content-type: text/html; charset=utf-8");

  3. echo '<pre>';

  4. $area = array(
  5. array('id'=>1,'name'=>'安徽','parent'=>0),
  6. array('id'=>2,'name'=>'海淀','parent'=>7),
  7. array('id'=>3,'name'=>'濉溪县','parent'=>5),
  8. array('id'=>4,'name'=>'昌平','parent'=>7),
  9. array('id'=>5,'name'=>'淮北','parent'=>1),
  10. array('id'=>6,'name'=>'朝阳','parent'=>7),
  11. array('id'=>7,'name'=>'北京','parent'=>0),
  12. array('id'=>8,'name'=>'上地','parent'=>2)
  13. );

  14. function findson($area,$id=0){

  15.         static $arr = array();

  16.         foreach($area as $v){
  17.                 if($v['id'] == $id){
  18.                         $arr[] = $v;
  19.                         if($v['parent'] != 0){
  20.                                 //$id = $v['parent'];
  21.                                 findson($area,$v['parent']);
  22.                         }
  23.                 }
  24.         }

  25.         return $arr;
  26. }

  27. print_r(findson($area,8));

  28. ?>
复制代码
为什么把26行的“//$id = $v['parent'];”这个屏蔽起来就正常,打开就错误了呢?屏蔽是
  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.             [id] => 8
  6.             [name] => 上地
  7.             [parent] => 2
  8.         )

  9.     [1] => Array
  10.         (
  11.             [id] => 2
  12.             [name] => 海淀
  13.             [parent] => 7
  14.         )

  15.     [2] => Array
  16.         (
  17.             [id] => 7
  18.             [name] => 北京
  19.             [parent] => 0
  20.         )

  21. )
复制代码
打开26行的“$id = $v['parent'];”就是
  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.             [id] => 8
  6.             [name] => 上地
  7.             [parent] => 2
  8.         )

  9.     [1] => Array
  10.         (
  11.             [id] => 2
  12.             [name] => 海淀
  13.             [parent] => 7
  14.         )

  15.     [2] => Array
  16.         (
  17.             [id] => 7
  18.             [name] => 北京
  19.             [parent] => 0
  20.         )

  21.     [3] => Array
  22.         (
  23.             [id] => 7
  24.             [name] => 北京
  25.             [parent] => 0
  26.         )

  27. )
复制代码
为什么会多输出一个北京呢?求大神们解释一下,小弟实在想不明白

点评

谁能帮忙指点一二的飘仙加金币鼓励  发表于 2013-10-10 09:15

评分

参与人数 1金币 +1 收起 理由
谎唁 + 1 飘仙大哥,你见过有这样分类的吗?我是没有.

查看全部评分

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2013-10-10 09:41:38 | 显示全部楼层 来自 中国–四川–成都
http://bbs.piaoxian.net/thread-49577-1-1.html去看下这个分类
http://www.nkcb.net/forum.php?mod=forumdisplay&fid=52去看看这个是不是你想要的效果

评分

参与人数 1金币 +5 收起 理由
抢楼评分专号 + 5 很幸运,你获得了抢楼奖励!

查看全部评分

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

发表于 2013-10-10 22:07:27 | 显示全部楼层 来自 中国–广东–深圳
很复杂   问一句  你这个鞋代码是哪里用的

评分

参与人数 1金币 +3 收起 理由
抢楼评分专号 + 3 很幸运,你获得了抢楼奖励!

查看全部评分

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-22 17:37 , Processed in 0.067703 second(s), 14 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表