使用PHP合并数组

时间:2011-07-23 16:46:23

标签: php arrays loops foreach

这是我的阵列:

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循环执行此操作,但代码太大了。有没有简短快捷的方法来做到这一点?

4 个答案:

答案 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]);