'1', "caption" => "一级菜单1"),   array("level" => '1',&"/>  '1', "caption" => "一级菜单1"),   array("level" => '1',&">

 >  기사  >  백엔드 개발  >  请问版主xuzuning

请问版主xuzuning

WBOY
WBOY원래의
2016-06-13 12:56:15801검색

请教版主xuzuning

<br />
$ar = array (<br />
  array("level" => '1', "caption" => "一级菜单1"),<br />
  array("level" => '1', "caption" => "一级菜单2"),<br />
  array("level" => '2', "caption" => "二级菜单1"),<br />
  array("level" => '2', "caption" => "二级菜单2"),<br />
  array("level" => '3', "caption" => "三级菜单1"),<br />
  array("level" => '1', "caption" => "一级菜单3"),<br />
);<br />
print_r( foo($ar));<br />
<br />
function foo(&$ar, $level='1') {<br />
  $res = array();<br />
  while($r = current($ar)) {<br />
    if($r['level'] > $level) $res[count($res)-1]['sub'] = foo($ar, $r['level']);<br />
    elseif($r['level'] == $level) $res[] = $r;<br />
    else {<br />
      array_unshift($ar, $r);<br />
      break;<br />
    }<br />
    array_shift($ar);<br />
  }<br />
  return $res;<br />
}<br />


在上面的代码中while($r = current($ar)) 是如何为true的,有点搞不明白


------解决方案--------------------
current($ar) 是取数组 $ar 的当前元素

只要不为空,就表示取到了。取到了当然就是 true 了
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.