Nick's Blog

PHP基础之数组合并(array_merge())

数组合并(array_merge())应用于合并两个或两个以上的数组。

数组合并一共涉及到两类合并。

1. 当键名(key)不同时

2. 当键名(key)相同时

第一种情况,我们通常直接使用array_merge().

首先创建一个config.php文件

<?php
return array(
‘DB_NAME’=>’DATABASE’,
‘DB_HOST’=>’LOCALHOST’,
‘USERNAME’=>’admin’,
‘address’=>’NYC’
?>

在你需要合并上面数组的merge.php文件中,定义config.php为一个变量a,定义另外的数组为变量b

<?php
$a =  include ‘config.php’;
$b = array(
‘port’=>’3306’,
‘address’=>’901itcom’
);
return array_merge($a,$b);
?>

在方法中,只需要包含merge.php文件,既可以输出config.php和merge.php

<?php
class newAction {
protected $c;
function __construct(){
$this->c = include “merge.php”;
}
public function address(){
var_dump($this->c[‘address’]);
echo $this->config[‘address’];
}
}
$a = new newAction();
$a->address();
?>

OUTPUT:NYC

遇到第二种情况的时候要远远小于第一种,也就是说当遇到键名相同的时候,使用array_merge()会使初始的键值被改写,得到的数组并没有合并。因此在第二种情况是,你需要使用array_merge_recursive(),如果键名相同,会生成一个以键名为数组名的新的二维数组。