sxtuwy 2012-09-22 18:00:39 2837次浏览 7条回复 0 0 0

具体是这样的

foreach($data as $key=>$value){
    $arr['children']=$value;//关键是这里怎么处理,假设这个循环是3次,
    最后得到$arr['cheldren']['cheldren']   
    ['cheldren']=$value;每次循环给它加一个孩子,怎样能做到?
}
  • 回复于 2012-09-22 18:27 举报

    可以使用函数递归。

  • 回复于 2012-09-22 22:16 举报

    哥们儿,我知道使用递归和非递归算法,关键这两种,我搞不出来具体算法来。

  • 回复于 2012-09-24 18:02 举报

    按照你的描述,$data 根本就是不可迭代的。

  • 回复于 2012-09-24 21:31 举报

    写一个特殊的方法试试了~

  • 回复于 2012-09-25 23:20 举报
    //$arr需是二维数组,键值需相同
    function fun(&$arr,$n){
        for($i=0;$i<$n;$i++){
            foreach($arr as $k=>$val){
                $arr[$k][$k]=$val;	
            } 
        }
    }
    $arr=array('a'=>array('a'=>'100'));
    fun($arr,6);
    
  • 回复于 2012-09-26 06:48 举报

    哥们儿,你这个必须是几层,我这个不能给定几层。谢谢你的回答。

  • 回复于 2012-09-27 12:44 举报

    递归?是不是太费力了!
    倒序循环数组!

    $array = range(1,10);
    end($array);
    while($key = key($array)){
    if(!isset($ar))
    {
    		$ar = array($key=>current($array));
    		prev($array);
    	}else{
    		$ar = array($key=>$ar);
    		prev($array);
    	}
    }
    print_r($ar);
    

    结果为

    Array
    (
        [1] => Array
            (
                [2] => Array
                    (
                        [3] => Array
                            (
                                [4] => Array
                                    (
                                        [5] => Array
                                            (
                                                [6] => Array
                                                    (
                                                        [7] => Array
                                                            (
                                                                [8] => Array
                                                                    (
                                                                        [9] => 10
                                                                    )
    
                                                            )
    
                                                    )
    
                                            )
    
                                    )
    
                            )
    
                    )
    
            )
    
    )
    
您需要登录后才可以回复。登录 | 立即注册