2016-12-12 11:20:16 1785次浏览 1条回答 0 悬赏 10 金钱
<?php
$cate = array(
    0 => array('id' => 1, 'pid' => 0, 'name' => '江西省'),
    1 => array('id' => 2, 'pid' => 0, 'name' => '浙江省'),
    2 => array('id' => 3, 'pid' => 1, 'name' => '上饶市'),
    3 => array('id' => 4, 'pid' => 3, 'name' => '广丰县'),
    4 => array('id' => 5, 'pid' => 2, 'name' => '杭州市'),
    5 => array('id' => 6, 'pid' => 5, 'name' => '西湖'),
    6 => array('id' => 7, 'pid' => 6, 'name' => '断桥'),
 );

function getLevel ($cate,$pid,$id,$i =1) {
    foreach ($cate as $v) {
        if ($v['pid'] == $pid) {                    
            if($v['id']==$id){
                return $i;
            }
            getLevel ($cate,$v['id'],$id,$i+1);      
        }
    }
} 

$L=getLevel ($cate,2,5); //等1
$L=getLevel ($cate,2,7); //这里为什么为空?

?>
补充于 2016-12-12 16:11
function getLevel($cate, $pid=2,$id=7,$i=1){
    foreach($cate as $v){
        if ($v['id'] == $id) {
            if ($v['pid'] != $pid) {
                $i = getLevel($cate, $pid=2,$v['pid'],$i+1);
            }
        }
    }
    return $i;
}

最佳答案

  • yyf 发布于 2016-12-13 00:16 举报
    function getLevel ($cate,$pid,$id,$i =1) {
        static $n=0;
        foreach ($cate as $v) {
    
            if ($v['pid'] == $pid) {
    
                if($v['id']==$id){
                    $n=$i;
                }
    
                getLevel ($cate,$v['id'],$id,$i+1);
            }
    
        }
        return $n;
    }
    

    稍微修改了一下,你看看可不可以

    2 条回复
    回复于 2016-12-13 09:23 回复

    我后面补充的那个就可以。你的也是可以的。谢谢。

    回复于 2016-12-13 09:55 回复


    ~~~///(^v^)\\\~~~

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
okokad
经理

okokad

注册时间:2016-02-29
最后登录:2017-07-01
在线时长:49小时26分
  • 粉丝12
  • 金钱25
  • 威望80
  • 积分1315

热门问题