PHP перемещает узлы в родительский массив

Как я могу переместить все узлы массива «fields» в его родительский массив «113», не снимая «поля»?

[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 ) ) ) ) 

Предполагая, что ваш массив верхнего уровня ( $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']); } } с foreach($a as $key => $values){ if(isset($values['fields'])) { $a[$key] = array_merge($a[$key], (array) $values['fields']); unset($a[$key]['fields']); } } 

Кроме того, если вы не хотите ударять по каждому элементу массива в $a вы можете просто удалить цикл и подставить $values $a[113] с помощью $a[113] и $key с 113 .

Также обратите внимание на кастинг для элемента полей в массив, jsut в случае, если он не является одним (array) $values['fields']

Если вы можете сделать этот массив следующим образом:

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