0

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

   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;

 }
4

1 回答 1

0

如果要将数组转换为 std 类,可以使用此脚本

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;
    }
}
于 2012-09-27T14:29:17.183 回答