合并PHP关联数组
我有多个arrays
,我试图merge
他们。想象下面的代码;合并PHP关联数组
$arr1[ 'a' ] = array('a', 'b', 'c');
$arr2[ 'a' ] = array('d', 'e', 'f');
$arr3[ 'a' ] = array('g', 'h', 'i');
$arr1[ 'b' ] = array('a', 'b', 'c');
$arr2[ 'b' ] = array('d', 'e', 'f');
$arr3[ 'b' ] = array('g', 'h', 'i');
$buf = array_merge($arr1, $arr2, $arr3);
print_r($buf);
我期待的结果是;
Array
(
[a] => Array
(
[ 0 ] => a
[ 1 ] => b
[ 2 ] => c
[ 3 ] => d
[ 4 ] => e
[ 5 ] => f
[ 6 ] => g
[ 7 ] => h
[ 8 ] => i
)
[b] => Array
(
[ 0 ] => a
[ 1 ] => b
[ 2 ] => c
[ 3 ] => d
[ 4 ] => e
[ 5 ] => f
[ 6 ] => g
[ 7 ] => h
[ 8 ] => i
)
)
我尝试使用array_merge()
和array_combine()
没有成功。希望任何人都可以帮忙。
用途:
$buf = array_merge_recursive($arr1, $arr2, $arr3);
事情是这样的:
<?php
$arr1[ 'a' ] = array('a', 'b', 'c');
$arr2[ 'a' ] = array('d', 'e', 'f');
$arr3[ 'a' ] = array('g', 'h', 'i');
$arr1[ 'b' ] = array('a', 'b', 'c');
$arr2[ 'b' ] = array('d', 'e', 'f');
$arr3[ 'b' ] = array('g', 'h', 'i');
$array = [
'a' => array_merge($arr1['a'], $arr2['a'], $arr3['a']),
'b' => array_merge($arr1['b'], $arr2['b'], $arr3['b'])
];
var_dump($array);
我喜欢这个解决方案,但它根本不会扩展 - 每次添加密钥时都需要为您的'$ array'添加关卡,或者创建一个循环来执行此操作。 PHP的[内置函数](http://php.net/array_merge_recursive)几乎总是会胜过自定义逻辑。 – 2014-09-06 20:50:29
@scrowler我今天学到了东西! thx – mpgn 2014-09-06 21:13:11
array_merge()
仅查找一层深成阵列。你应该使用array_merge_recursive()
为this:
$buf = array_merge_recursive($arr1, $arr2, $arr3);
$ ARR1 [ '一'] =阵列( 'A', 'B', 'C');
$ arr2 ['a'] = array('d','e','f');
$ arr3 ['a'] = array('g','h','i');
$ arr1 ['b'] = array('a','b','c');
$ arr2 ['b'] = array('d','e','f');
$ arr3 ['b'] = array('g','h','i');
$阵列=阵列(
'a' => array_merge($arr1['a'], $arr2['a'], $arr3['a']),
'b' => array_merge($arr1['b'], $arr2['b'], $arr3['b'])
);
print_r($ array);
这与本文发表的30分钟前发布的[this one](http://*.com/a/25704359/2812842)基本相同。 – 2014-09-06 20:49:24
简单美丽。 – KaekeaSchmear 2014-09-06 20:22:42