php数组递归输出
本帖最后由 ecshop528 于 2013-01-21 12:54:22 编辑
$ar = array('0'=>array('name'=>'name1','age'=>'age1'),'1'=>array('name'=>'name2','age'=>'age2'),'2'=>array('name'=>'name3','age'=>'age3'));
想通过递归,输入以下字符串
$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 />
}
登入後複製