您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

请问版主xuzuning

2024/4/21 9:54:53发布23次查看
请教版主xuzuning
$ar = array (
array(level => '1', caption => 一级菜单1),
array(level => '1', caption => 一级菜单2),
array(level => '2', caption => 二级菜单1),
array(level => '2', caption => 二级菜单2),
array(level => '3', caption => 三级菜单1),
array(level => '1', caption => 一级菜单3),
);
print_r( foo($ar));
function foo(&$ar, $level='1') {
$res = array();
while($r = current($ar)) {
if($r['level'] > $level) $res[count($res)-1]['sub'] = foo($ar, $r['level']);
elseif($r['level'] == $level) $res[] = $r;
else {
array_unshift($ar, $r);
break;
}
array_shift($ar);
}
return $res;
}

在上面的代码中while($r = current($ar)) 是如何为true的,有点搞不明白
------解决方案--------------------
current($ar) 是取数组 $ar 的当前元素
只要不为空,就表示取到了。取到了当然就是 true 了
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product