$res=array(
array('id'=>0,'name'=>'course','classid'=>''),
array('id'=>1,'name'=>'Math','classid'=>0),
array('id'=>2,'name'=>'English','classid'=>0),
array('id'=>3,'name'=>'Sports','classid'=>0),
array('id'=>4,'name'=>'Algebra','classid'=>1),
array('id'=>5,'name'=>'Geometry','classid'=>1),
array('id'=>6,'name'=>'Calculus','classid'=>1),
array('id'=>7,'name'=>'Grammar','classid'=>2),
array('id'=>8,'name'=>'Reading','classid'=>2),
array('id'=>9,'name'=>'Basketball','classid'=>3),
array('id'=>10,'name'=>'Soccer','classid'=>3),
);foreach($res as $arr){
if(!is_numeric($arr['classid'])){
$name='c1';
}else{
$name=$arr['classid'];
}
$tmp[$name][$arr['id']]=$arr['name'];
}
$c1=$tmp['c1'];
unset($tmp['c1']);foreach($tmp as $k=>$v){
foreach($c1 as $id=>$name){
if($k!=$id){
foreach($tmp[0] as $kid=>$kname){
if($k==$kid){
foreach($v as $cid=>$cname){
$return[]= $name.' -> '.$kname.' -> '.$cname;
}
}
}
}
}
}natsort($return);
echo "<pre>";
print_r($return);
echo "</pre>";感觉还可以精简的,自己整吧