php &符号的问题

manbudezhu 发布于 2016/07/06 16:53
阅读 267
收藏 1
PHP

【Gopher China万字分享】华为云的Go语言云原生实战经验!>>>

//生成无限极分类树  
function make_tree($arr){  
    $refer = array();  
    $tree = array();  
    foreach($arr as $k => $v){  
        $refer[$v['id']] = & $arr[$k];  //创建主键的数组引用  
    }  
      
    foreach($arr as $k => $v){  
        $pid = $v['pid'];   //获取当前分类的父级id  
        if($pid == 0){  
            $tree[] = & $arr[$k];   //顶级栏目  
        }else{  
            if(isset($refer[$pid])){  
                $refer[$pid]['subcat'][] = & $arr[$k];  //如果存在父级栏目,则添加进父级栏目的子栏目数组中  
            }  
        }  
    }  
      
    return $tree;  

在网上看了一个栏目无限树的函数,写法挺简洁的.不理解红字这两行代码加&的作用,如果不加的话会影响什么.我知道&是地址应用的作用.附函数事例数组:

$arr = array(  
    array("id" => 1 , "pid" => 0 , 'cat' => '栏目一'),  
    array("id" => 2 , "pid" => 0 , 'cat' => '栏目二'),  
    array("id" => 3 , "pid" => 1 , 'cat' => '栏目三'),  
    array("id" => 4 , "pid" => 2 , 'cat' => '栏目四'),  
    array("id" => 5 , "pid" => 1 , 'cat' => '栏目五'),  
    array("id" => 6 , "pid" => 5 , 'cat' => '栏目六'),  
    array("id" => 7 , "pid" => 5 , 'cat' => '栏目七'),  
    array("id" => 8 , "pid" => 6 , 'cat' => '栏目八'),  
    array("id" => 9 , "pid" => 1 , 'cat' => '栏目九'),  
    array("id" => 10 , "pid" => 0 , 'cat' => '栏目十'),  
    array("id" => 11 , "pid" => 10 , 'cat' => '栏目十一'),  
    array("id" => 12 , "pid" => 11 , 'cat' => '栏目十二'),  
    array("id" => 13 , "pid" => 2 , 'cat' => '栏目十三'),  
    array("id" => 14, "pid" => 13 , 'cat' => '栏目十四')  
);  
还有一个问题,oschina上如何把代码格式发的漂亮点,我看到很多帖子上的代码都带样式的.

加载中
0
viiile
viiile

就是取id的值来建立数组索引

0
梦想岛
梦想岛

&是源自c语言的递归。就是你现在手上有一个面包,每次循环我都会多给你多一个面包。

可以说是递增或者修改的作用。

返回顶部
顶部