首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

php数组递归输出,该怎么解决

2013-01-25 
php数组递归输出本帖最后由 ecshop528 于 2013-01-21 12:54:22 编辑$ar array(0array(namename

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'));

想通过递归,输入以下字符串
<div id="a">
<div id="a">
<div id="a">
name3-age3
</div>
name2-age2
</div>
name1-age1
</div>

$ar = array('0'=>array('name'=>'name1','age'=>'age1'),'1'=>array('name'=>'name2','age'=>'age2'),'2'=>array('name'=>'name3','age'=>'age3'));
deep_child($ar);
function deep_child($ar = array()){
static $str = '';
static $i=0;

if($ar[$i]){
echo '<div id="a">';
$s =  $ar[$i]['name']."-".$ar[$i]['age'];
$i++;
deep_child($ar);
echo $s;
echo '</div>';

}
}


这样写好象能输入,不知道有没其他写法。。
[解决办法]
静态变量可不是随便可用的
$ar[0] = array('0'=>array('name'=>'name1','age'=>'age1'),'1'=>array('name'=>'name2','age'=>'age2'),'2'=>array('name'=>'name3','age'=>'age3'));
$ar[1] = array('0'=>array('name'=>'name1','age'=>'age1'),'1'=>array('name'=>'name2','age'=>'age2'),'2'=>array('name'=>'name3','age'=>'age3'));
for($i=0;$i<2;$i++){
    echo deep_child($ar[$i]);
     
}
function deep_child($ar = array(), $i=0){
    $str = '';
//    static $i=0;
     
    if(isset($ar[$i])){
        $str.= '<div id="a">'.PHP_EOL;
        $str.=  $ar[$i]['name']."-".$ar[$i]['age'].PHP_EOL;
        $i++;
        $str.=deep_child($ar, $i);
         
        $str.= '</div>'.PHP_EOL;
     
    }
    return $str;
}
<div id="a">
name1-age1
<div id="a">
name2-age2
<div id="a">
name3-age3
</div>
</div>
</div>
<div id="a">
name1-age1
<div id="a">
name2-age2
<div id="a">
name3-age3
</div>
</div>
</div>

热点排行