PHP配列の再帰出力、その解決方法

WBOY
リリース: 2016-06-13 12:55:46
オリジナル
713 人が閲覧しました

PHP 配列再帰出力

この投稿は ecshop528 によって最終編集されました (2013-01-21 12:54:22) $ar = array('0'=>array('name'=>'name1','age'=>'age1'),'1'=>array('name'=>'name2 ','年齢'=>'年齢2'),'2'=>array('名前'=>'名前3','年齢'=>'年齢3'));

再帰を使用するには、次の文字列を入力します



名前3-年齢3

名前2-年齢2

名前1-年齢1

$ar = array('0'=>array('name'=>'name1','age'=>'age1'),'1'=>array('name'=>'name2','age'=>'age2'),'2'=>array('name'=>'name3','age'=>'age3'));<br />
deep_child($ar);<br />
function deep_child($ar = array()){<br />
	static $str = '';<br />
	static $i=0;<br />
	<br />
	if($ar[$i]){<br />
		echo '<div id="a">';<br />
		$s =  $ar[$i]['name']."-".$ar[$i]['age'];<br />
		$i++;<br />
		deep_child($ar);<br />
		echo $s;<br />
		echo '</div>';<br />
	<br />
	}<br />
}
ログイン後にコピー


この方法で入力できるようですが、他の方法があるかどうかはわかりません。 。


-----解決策--------------------------------
静的変数は気軽には利用できません
$ar[0] = array('0'=>array('name'=>'name1','age'=>'age1'),'1'=>array('name'=>'name2','age'=>'age2'),'2'=>array('name'=>'name3','age'=>'age3'));<br />
$ar[1] = array('0'=>array('name'=>'name1','age'=>'age1'),'1'=>array('name'=>'name2','age'=>'age2'),'2'=>array('name'=>'name3','age'=>'age3'));<br />
for($i=0;$i<2;$i++){<br />
    echo deep_child($ar[$i]);<br />
     <br />
}<br />
function deep_child($ar = array(), $i=0){<br />
    $str = '';<br />
//    static $i=0;<br />
     <br />
    if(isset($ar[$i])){<br />
        $str.= '<div id="a">'.PHP_EOL;<br />
        $str.=  $ar[$i]['name']."-".$ar[$i]['age'].PHP_EOL;<br />
        $i++;<br />
        $str.=deep_child($ar, $i);<br />
         <br />
        $str.= '</div>'.PHP_EOL;<br />
     <br />
    }<br />
    return $str;<br />
}
ログイン後にコピー

名前1-年齢1

名前2-年齢2

名前3-年齢3




名前1-年齢1

名前2-年齢2

名前3-年齢3



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート