PHP递归

简介: 代码如下
//模型公众方法,递归
    public function treeLevel(array $data, int $pid = 0, string $html = '--', int $level = 0)
    {
        //静态数组不在方法内,所以无法覆盖
        static $arr = [];
        foreach ($data as $val) {
            if ($val['pid'] == $pid) {
                $val['html'] = str_repeat($html, $level * 2);
                $val['level'] = $level + 1;
                //如果是0,则是顶级菜单
                $arr[] = $val;
                $this->treeLevel($data, $val['id'], $html, $val['level']);
            }
        }
        return $arr;
    }
    //递归处理层
    public function sonLevel($data, $pid = 0)
    {
        $arr = [];
        foreach ($data as $val){
            if ($val['pid'] == $pid){
                $val['son'] = $this->sonLevel($data,$val['id']);
                $arr[] = $val;
            }
        }
        return $arr;
    }


相关文章
|
4月前
|
算法 小程序 PHP
PHP实现递归排序
在leetcode练习算法的时候,发现一个算法需要用到递归。 递归是个好东西,但是吧,一般不理解其精髓的,很难写出一个好的递归。 递归其实就是函数本身直接或者间接地调用自身的一种编程方法(我自己调用我自己~),也可以理解为有反复执行过程的一种方法,这个就与循环非常相似,但是递归调用的函数中必须要有终止条件,也就是一定
28 1
|
10月前
|
PHP
PHP递归和循环的速度测试
写了一个可以对 $_GET`, `$_POST 等输入进行过滤的函数,做了PHP递归和循环的速度测试。
55 0
|
Web App开发 Rust 安全
解雇拒绝打开摄像头员工被罚 51 万;推送损坏的更新,导致数千网站瘫痪;PHP 存在不受控制的递归漏洞|思否周刊
解雇拒绝打开摄像头员工被罚 51 万;推送损坏的更新,导致数千网站瘫痪;PHP 存在不受控制的递归漏洞|思否周刊
|
SQL PHP
php递归函数返回值返回不出的问题
php递归函数返回值返回不出的问题
44 0
php递归函数返回值返回不出的问题
|
存储 PHP 块存储
php-递归
php-递归
83 0
|
PHP
【PHP】递归时把数据存到数组里(防止被覆盖)
【PHP】递归时把数据存到数组里(防止被覆盖)
82 0
【PHP】递归时把数据存到数组里(防止被覆盖)