曾经,那些如风一样的日子里,对array_merge、array_merge_recursive这两个函数一直属于是有概念,没实践的状态。偶然遇见这样一个面试问题:关于同key的情况,结果是怎么样的?
通过以下的例子,把这两个函数各执行一次,便可以充分理解这两个函数的概念。
<?php
/**
desc:数组合并
link:www.jb200.com
date:2013/2/22
*/
$a = array( 'a' => 1, 'b' => 2 );
$b = array( 'b' => 3, 'd' => 4 );
//数组合并
$array_merge = array_merge( $a, $b );
echo '<pre>';
print_r( $array_merge );
//数组递归合并
$array_merge_recursive = array_merge_recursive( $a, $b );
print_r( $array_merge_recursive );
echo '</pre>';
?>
输出结果:
Array
(
[a] => 1
[b] => 3
[d] => 4
)
Array
(
[a] => 1
[b] => Array
(
[0] => 2
[1] => 3
)
[d] => 4
)
我们可以看出:
array_merge遇到同值的情况是第二个数组key覆盖第一个数组key,而array_merge_recursive函数则对同值数组采取了下标合并。