我有一个名为ecomm的主要类别和3个子类别,每个子类别都有两个子类别如何以子格式显示结果 我的输出像
ecomm
{
men{
shirts{ p1, p2}
}
women { tops {p1, p2}
}
Kids{
shoes{p1,p2}
}
}
答案 0 :(得分:0)
以下是适用于您的解决方案,请参阅下面的代码并同时检查Live Demo ...
<?php
$data=array();
$all = array(
array('id'=>1,'ParentID'=>'0','type'=>'Men'),
array('id'=>2,'ParentID'=>'0','type'=>'Women'),
array('id'=>3,'ParentID'=>'0','type'=>'Kids'),
array('id'=>4,'ParentID'=>'1','type'=>'Shirt'),
array('id'=>5,'ParentID'=>'2','type'=>'Top'),
array('id'=>6,'ParentID'=>'3','type'=>'Shoes'),
array('id'=>7,'ParentID'=>'4','type'=>'p1'),
array('id'=>8,'ParentID'=>'5','type'=>'p1'),
array('id'=>9,'ParentID'=>'6','type'=>'p1'),
array('id'=>10,'ParentID'=>'4','type'=>'p2'),
array('id'=>11,'ParentID'=>'5','type'=>'p2'),
array('id'=>12,'ParentID'=>'6','type'=>'p2')
);
foreach($all as $key => $val)
{
if($val['ParentID']==0)
{
$data[$key]=$val;
foreach($all as $k => $v)
{
if($val['id'] == $v['ParentID']){
$data[$key]['subBranches'][$key]= $v;
foreach($all as $a => $s)
{
if($v['id'] == $s['ParentID']){
$data[$key]['subBranches'][$key]['sub_subBranches'][]= $s;
}
}
}
}
}
}
echo json_encode($data);
?>
你的json数组就像:
[
{
"id":1,
"ParentID":"0",
"type":"Men",
"subBranches":[
{
"id":4,
"ParentID":"1",
"type":"Shirt",
"sub_subBranches":[
{
"id":7,
"ParentID":"4",
"type":"p1"
},
{
"id":10,
"ParentID":"4",
"type":"p2"
}
]
}
]
},
{
"id":2,
"ParentID":"0",
"type":"Women",
"subBranches":{
"1":{
"id":5,
"ParentID":"2",
"type":"Top",
"sub_subBranches":[
{
"id":8,
"ParentID":"5",
"type":"p1"
},
{
"id":11,
"ParentID":"5",
"type":"p2"
}
]
}
}
},
{
"id":3,
"ParentID":"0",
"type":"Kids",
"subBranches":{
"2":{
"id":6,
"ParentID":"3",
"type":"Shoes",
"sub_subBranches":[
{
"id":9,
"ParentID":"6",
"type":"p1"
},
{
"id":12,
"ParentID":"6",
"type":"p2"
}
]
}
}
}
]