php将节点移动到父数组
如何将“fields”数组的所有节点移动到其父数组“113”中,同时取消设置“fields”php将节点移动到父数组,php,arrays,Php,Arrays,如何将“fields”数组的所有节点移动到其父数组“113”中,同时取消设置“fields” [a] => Array ( [113] => Array ( [title] => asdfasdfas [alias] => asdfasdfas [fields] => Array
[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']
的数组,那么这个数组的“根”是什么?您有几个这样的子阵列,还是只想对这个特定阵列执行此操作?