相邻列表的递归函数

时间:2012-09-27 13:22:23

标签: php

创建递归函数将列表转换为对象时遇到问题:

   location :
       12 : 
         label : 'city 1'
         children:
              13 :
                label:'city2'
                children :
                   14 : 
                     label : 'city3'
                   15 : 
                     label : 'city4'
                     children :
                            16 : 
                                  .....
                                 .....

              122 :
                label : 'city 100'

    ........

所以我希望创建一个递归函数来返回一个上面列出我所有列表的对象:

 public static function getLocation($config , $id )
 {
    $id= current($config['id'])
    $label =   $config['id']['label']
    $children = $config['id']['label']['children']
    ....
    if(!empty($children) ){

    }else{

       foreach( ){
           getLocation($config , $id );
       }
    }
    return $obj;

 }

1 个答案:

答案 0 :(得分:0)

如果要将数组转换为std类,可以使用this script

function arrayToObject($d) {
    if (is_array($d)) {
        /*
        * Return array converted to object
        * Using __FUNCTION__ (Magic constant)
        * for recursive call
        */
        return (object) array_map(__FUNCTION__, $d);
    }
    else {
        // Return object
        return $d;
    }
}