首先 将json 解码成数组, 用json_decode 函数 注意 一定要加上第二个参数 否则他会返回一个对象。接下来就是地递归了。这是一个最简单的递归只要逐个遍历即可。
下面是完整的代码:
$data= json_decode($str,true);$options = getChildren($data);
function getChildren($parent,$deep=0) {
foreach($parent as $row) {
$data[] = array("id"=>$row['id'], "name"=>$row['name'],"pid"=>$row['parentid'],'deep'=>$deep);
if ($row['childs']) {
$data = array_merge($data, getChildren($row['childs'], $deep+1));
}
}
return $data;
}
>
<select name="" id="">
<php foreach ($options as $row) { >
<option value="<php echo $row['id'] >"><php echo str_pad("",$row['deep']3, "-",STR_PAD_RIGHT); ><php echo $row['name']; ></option>
<php } >
</select>
以上代码已测试通过 效果图如下
//用多维数组存储无限级分类
static public function unlimitedForLayer($cate,$pid=0){
$arr=array();
foreach ($cate as $v) {
if ($v['pid']==$pid) {
$v['child']=self::unlimitedForLayer($cate,$v['id']);
$arr[]=$v;
}
}
return $arr;
}
以上就是关于php 递归问题,想要将数据按照无限极分类的样式显示出来全部的内容,包括:php 递归问题,想要将数据按照无限极分类的样式显示出来、用PHP递归分类列表怎么不会输出子分类、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)