PHP 递归函数使用实例

创建递归数组

//$fid 父id $v['id'] 子id $v['child'] 子id数组
    //$cate 要循环的一维数组
    function digui($cate, $fid = 0){
        foreach ($cate as $v)
         {
            if ($v['fid'] == $fid) 
            {
                $v['child'] = digui($cate, $v['id']);
                $arr[] = $v;
            }
        }
        return $arr;
    }

   digui($arrAll);

递归数组转一维数组

$arrayiter = new RecursiveArrayIterator($arrAll);
    $iteriter = new RecursiveIteratorIterator($arrayiter);
    //直接打印即可按照横向顺序打印出来
    foreach ($iteriter as $key => $val){
        echo $key.'=>'.$val;
    }
function get_array_elems($arrResult, $where = "array"){
        while(list($key,$value)=each($arrResult)){
            if (is_array($value)){
                get_array_elems($value, $where."[$key]");
            }
            else {
                for ($i=0; $i<count($value);$i++){
                    echo $where."[$key]=".$value."<BR>\n";
                }
            }
        }
    }


    get_array_elems($arrAll);

顺序输出递归数组

function get_cate(&$data=array(),$fid=0,$i=-1){
        $i++;
        $sql="select id,fid from toa_module where fid='$fid'";
        $result=mysql_query($sql);
        while ($row=mysql_fetch_assoc($result)){
            $row['num']=$i;
            $data[]=$row;
            get_cate($data,$row['id'],$i);
        }
        return $data;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值