这是我的阵列:
array(
'username' => 'Username cannot be empty',
'password' => 'Password cannot be empty',
'_external' => array(
'email' => 'Email cannot be empty',
),
),
...我想从我的数组中得到这个结果:
array(
'username' => 'Username cannot be empty',
'password' => 'Password cannot be empty',
'email' => 'Email cannot be empty',
),
我知道如何使用foreach
循环执行此操作,但代码太大了。有没有简短快捷的方法来做到这一点?
答案 0 :(得分:1)
foreach($array as $k=>$v) {
if (is_array($array[$k])) {
$array = array_merge($array,$array[$k]);
unset($array[$k]);
}
}
答案 1 :(得分:0)
foreach (array_keys($array) as $key) {
$value = $array[$key];
if (is_array($value)) {
unset($array[$key]);
$array = array_merge($array, $value);
}
}
在编辑问题之后,它更加简单
$x = $array['_external'];
unset($array['_external']);
$array = array_merge($array, $x);
答案 2 :(得分:0)
试试这个。不那么冗长:
$tmp_obj = (object) array('flatten' => array());
array_walk_recursive($my_multidim_array, create_function('&$v, $k, &$t', '$t->flatten[] = $v;'), $tmp_obj);
var_dump($tmp_obj->flatten);
答案 3 :(得分:0)
array_splice($array, 2, 1, $array[2]);