php将节点移动到父数组

php将节点移动到父数组,php,arrays,Php,Arrays,如何将“fields”数组的所有节点移动到其父数组“113”中,同时取消设置“fields” [a] => Array ( [113] => Array ( [title] => asdfasdfas [alias] => asdfasdfas [fields] => Array

如何将“fields”数组的所有节点移动到其父数组“113”中,同时取消设置“fields”

    [a] => Array
    (
        [113] => Array
            (
                [title] => asdfasdfas
                [alias] => asdfasdfas
                [fields] => Array
                    (
                        [jr_streetaddress] => Array
                            (
                                [type] => text
                                [label] => Street Address
                                [data] => asdfasdffsd
                            )

                        [jr_towncity] => Array
                            (
                                [type] => text
                                [label] => Town / City
                                [data] => Nottingham
                            )
                    )
            )
     )

如果您可以将此阵列设置为如下所示:

[a] => Array
(
    [113] => Array
        (
            [title] => asdfasdfas
            [alias] => asdfasdfas
            [jr_streetaddress] => Array
                        (
                            [type] => text
                            [label] => Street Address
                            [data] => asdfasdffsd
                        )

            [jr_towncity] => Array
                        (
                            [type] => text
                            [label] => Town / City
                            [data] => Nottingham
                        )
        )
 )
请尝试使用以下代码:

$array['a'][113]['jr_streetaddress'] = $array['a'][113]['fields']['jr_streetaddress'];
$array['a'][113]['jr_towncity'] = $array['a'][113]['fields']['jr_towncity'];
unset($array['a'][113]['fields']);

假设顶级数组(
$something['a']
)是变量
$a

foreach($a as $key => $values){
  if(isset($values['fields']))
    {
       $a[$key] = array_merge($a[$key], (array) $values['fields']);
       unset($a[$key]['fields']);
    }
}
或者,如果您不想命中
$a
中的每个数组元素,您可以删除循环,用
$a[113]
替换
$values
,用
113
替换
$key

还要注意将fields元素转换为数组,jsut如果它不是一个带有
(array)$values['fields']

的数组,那么这个数组的“根”是什么?您有几个这样的子阵列,还是只想对这个特定阵列执行此操作?