'1', "caption" => "レベル 1 メニュー 1"), array("レベル" => '1',&"/> '1', "caption" => "レベル 1 メニュー 1"), array("レベル" => '1',&">

ホームページ  >  記事  >  バックエンド開発  >  モデレーターのxuzuningさんに聞いてください

モデレーターのxuzuningさんに聞いてください

WBOY
WBOYオリジナル
2016-06-13 12:56:15773ブラウズ

モデレータの 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
の現在の要素
空でない限り、それは取得されたことを意味します。もちろん理解できれば本当です
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。