zoukankan      html  css  js  c++  java
  • PHP递归算法

    /**
    * 获取菜单
    * @param number $id
    * @return multitype:
    */
    public function menu($id = 0) {
    $menu = M ( 'menu' );
    $arrlist = array (); // 数组必须初始化,否push不进去
    $where ['app'] = 'Portal';
    $where ['parentid'] = $id;
    $where ['status'] = 1;
    $parent = $menu->order ( 'listorder asc' )->where ( $where )->select ();//判断是否包含children元素
    for($i = 0; $i < count ( $parent ); $i ++) {
    $arr ['name'] = $parent [$i] ['name'];
    $arr ['id'] = $parent [$i] ['id'];
    if($id!=0)
    {
    $arr ['link'] = U ( $parent [$i] ['app'] . '/' . $parent [$i] ['model'] . '/' . $parent [$i] ['action'] . '/' . $parent [$i] ['data'] . '/tid/' . $parent [$i] ['parentid'] . '/id/' . $parent [$i] ['id'] );
    }

    else
    {
    $arr ['link'] = U ( $parent [$i] ['app'] . '/' . $parent [$i] ['model'] . '/' . $parent [$i] ['action'] . '/' . $parent [$i] ['data'] . '/tid/' . $parent [$i] ['id'] );
    }

    $arr ['child'] = $this->menu ( $parent [$i] ['id'] );
    array_push ( $arrlist, $arr );   //执行完成这个方法后继续进行下一次递归
    }
    return $arrlist; // 一次递归完成  然后执行 array_push方法  
    }

  • 相关阅读:
    orm添加表记录
    创建多表模型
    包的使用
    日志写法
    os模块,是通过和操作系统交互进行操作
    sys python解释器做交互
    软件开发规范
    模块 time模块 datatime模块 random模块
    装饰器
    装饰器进阶
  • 原文地址:https://www.cnblogs.com/sunzhenyong/p/4256113.html
Copyright © 2011-2022 走看看