<?php $data='{"type":"dir_content","dir":"D:\\Documents","content":[{"name":"Tencent Files","mod_time":"2017-12-21 10:00:00","type":"dir"},{"name":"QQ8.9.6.exe","mod_time":"2017-12-21 10:00:00","type":"file"}]}'; $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; $data=str_replace('\\','\\\\',$data); $arr=json_decode($data,true); print_r($arr['dir']); foreach ($arr as $k=>$v){ /* foreach ($arr['content'] as $k1=>$v1){ echo $v1['name']; }*/ } header("Content-Type: text/html; charset=UTF-8"); print_r($arr); <?php //导航栏分类 class Category{ //组合一维数组 static public function unlimitedForLevel($cate,$html='--',$pid=0,$level=0){ //echo 1; $arr=array(); foreach ($cate as $v){ if ($v['pid']==$pid){ //根据level来输出$html的个数 $v['level']=$level+1; $v['html']=str_repeat($html, $level); $arr[]=$v; //递归合并 $arr=array_merge($arr,self::unlimitedForLevel($cate,$html,$v['id'],$level+1)); } } return $arr; } //无限级二(多维数组) static public function unlimitedForLayer($cate,$name='child',$pid=0){ $arr=array(); foreach ($cate as $v){ if($v['pid']==$pid){ //$v['child']=self::unlimitedForLayer($cate,$v['id']); $v[$name]=self::unlimitedForLayer($cate,$name,$v['id']); $arr[]=$v; } } return $arr; } //可以根据子级id 返回所有的父级id static public function getParents($cate,$id){ $arr=array(); foreach ($cate as $v){ if($v['id']==$id){ $arr[]=$v; $arr=array_merge(self::getParents($cate,$v['pid']),$arr); } } //php>>字符串》》字符串处理函数》》substr() /*foreach ($cate as $v){ $v['name'].">>" }*/ return $arr; } //传递一个父级id,返回所有子级分类id(只返回id) static public function getChildsId($cate,$pid){ $arr=array(); foreach ($cate as $v){ if($v['pid']==$pid){ $arr[]=$v['id']; $arr=array_merge($arr,self::getChildsId($cate, $v['id'])); } } return $arr; } //跟第四种一样,但是返回数组 static public function getChilds($cate,$pid){ $arr=array(); foreach ($cate as $v){ if($v['pid']==$pid){ $arr[]=$v; $arr=array_merge($arr,self::getChilds($cate, $v['id'])); } } return $arr; } } ?>
PHP递归四种方法
最新推荐文章于 2024-04-08 05:15:00 发布