我有一个可能看起来像
的数组$arr = array(
array(
'test1' => 'testing1'
),
array(
'test2' => array(
1 =>'testing2
)
);
我想把它变成
$newArr = array(
'test1' => 'testing1',
'test2' => array(
1 => 'testing2'
)
);
所以我一直试图将所有数组元素上移一层。
eidt:
这是我将2个数组组合在一起的方法:
public function arrayMerge($arr1, $arr2)
{
foreach($arr2 as $key => $value) {
$condition = (array_key_exists($key, $arr1) && is_array($value));
$arr1[$key] = ($condition ? $this->arrayMerge($arr1[$key], $arr2[$key]) : $value);
}
return $arr1;
}
答案 0 :(得分:20)
这有点微不足道,很多方面都是可能的。
例如,使用array union operator (+
)Docs创建数组中所有数组的并集:
$newArr = array();
foreach ($arr as $subarray)
$newArr += $subarray;
或者通过array_merge
Docs一起使用call_user_func_array
Docs同时使用所有子阵列:
$newArray = call_user_func_array('array_merge', $arr);
答案 1 :(得分:10)
尝试
$arr = array(
array('test1' => 'testing1' ),
array('test2' => array(1 =>'testing2'))
);
$new = array();
foreach($arr as $value) {
$new += $value;
}
var_dump($new);
输出
array
'test1' => string 'testing1' (length=8)
'test2' =>
array
1 => string 'testing2' (length=8)