PHP中的array_merge函数:将多个数组合并成一个。
array_merge函数是PHP中非常常用的一个函数,它可以实现将多个数组合并成一个,非常方便。在PHP中,数组是非常常见的数据结构,我们经常需要将多个数组合并成一个进行处理,此时array_merge函数就非常有用了。
array_merge的基本语法是:
array array_merge ( array $array1 [, array $... ] )
其中,array1是必须的参数,表示要合并的数组,而后面的$... 表示可以接受任意多个数组作为参数,这些数组将会和array1合并为一个新的数组。
例如,我们有三个数组$ary1, $ary2, $ary3,我们可以使用如下代码将其合并为一个新的数组:
$ary = array_merge($ary1, $ary2, $ary3);
使用array_merge函数可以实现不同数组的合并,不同数组中的同名键名会被保留,而后面的键名覆盖前面的键名,同时也要注意到,该函数只能处理数值数组或者关联数组,如果需要处理字符串键名的数组需要使用array_merge_recursive函数。
array_merge的使用非常简单,但是需要注意一些细节。下面我们将详细介绍array_merge函数的一些重要特点。
1、array_merge函数只合并数值数组或者关联数组
array_merge函数只能处理数值数组或者关联数组,如果数组中同时包含了数值索引和字符串索引,那么会将字符串索引视为数字索引处理。如果数组中同时包含了数值索引和关联索引,则会将关联索引视为数值索引处理。
例如:
$ary1 = array(1,2,3);
$ary2 = array("a"=>"one", "b"=>"two", "c"=>"three");
$ary3 = array("apple", "orange", "banana");
$ary = array_merge($ary1, $ary2, $ary3);
var_dump($ary);
输出结果为:
array(8) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
["a"]=>
string(3) "one"
["b"]=>
string(3) "two"
["c"]=>
string(5) "three"
[3]=>
string(5) "apple"
[4]=>
string(6) "orange"
}
可以看到,最终的结果中,数值索引和关联索引都被当成了数值索引处理。
2、array_merge函数会将数组中的空元素过滤掉
如果原数组中包含了空元素,那么在执行array_merge函数后,空元素会被过滤掉。例如:
$ary1 = array(1,2,3);
$ary2 = array("", "two", "three");
$ary = array_merge($ary1, $ary2);
var_dump($ary);
输出结果为:
array(5) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
string(3) "two"
[4]=>
string(5) "three"
}
可以看到,$ary2中的 个元素为空,但是在最终的结果中被过滤掉了。
3、array_merge函数不会改变原数组
array_merge函数不会改变原数组,它只是将多个数组合并为一个新的数组,并将这个新的数组返回。例如:
$ary1 = array(1,2,3);
$ary2 = array("a"=>"one", "b"=>"two", "c"=>"three");
$ary3 = array("apple", "orange", "banana");
$ary = array_merge($ary1, $ary2, $ary3);
var_dump($ary1);
输出结果为:
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
可以看到,$ary1中的元素没有发生任何变化。
4、array_merge函数中的键名会被保留
如果多个数组中有相同的键名,array_merge函数会将后面的键名覆盖前面的键名,并在最终的结果中保留它们。
例如:
$ary1 = array("a"=>"one", "b"=>"two", "c"=>"three");
$ary2 = array("b"=>"four", "d"=>"five");
$ary = array_merge($ary1, $ary2);
var_dump($ary);
输出结果为:
array(4) {
["a"]=>
string(3) "one"
["b"]=>
string(4) "four"
["c"]=>
string(5) "three"
["d"]=>
string(4) "five"
}
可以看到,在最终的结果中,$ary2中的"b"=>"four"将$ary1中的"b"=>"two"覆盖了,但是将它们都保留了下来。
5、array_merge函数的参数可以是变量
array_merge函数的参数不仅可以是数组,还可以是变量,只要变量中存储的是数组即可。例如:
$ary1 = array(1,2,3);
$ary2 = array("a"=>"one", "b"=>"two", "c"=>"three");
$var = $ary1;
$ary = array_merge($var, $ary2);
var_dump($ary);
输出结果为:
array(6) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
["a"]=>
string(3) "one"
["b"]=>
string(3) "two"
["c"]=>
string(5) "three"
}
可以看到,$var中存储了$ary1这个数组,最终结果中$ary1和$ary2的元素被合并到了一起。
6、array_merge函数可以合并多个数组
array_merge函数可以合并任意多个数组,只要它们的类型是数值数组或者关联数组。例如:
$ary1 = array(1,2,3);
$ary2 = array("a"=>"one", "b"=>"two", "c"=>"three");
$ary3 = array("apple", "orange", "banana");
$ary4 = array("xu", "xi", "qian", "zhao");
$ary = array_merge($ary1, $ary2, $ary3, $ary4);
var_dump($ary);
输出结果为:
array(11) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
["a"]=>
string(3) "one"
["b"]=>
string(3) "two"
["c"]=>
string(5) "three"
[3]=>
string(5) "apple"
[4]=>
string(6) "orange"
[5]=>
string(6) "banana"
[6]=>
string(2) "xu"
[7]=>
string(2) "xi"
[8]=>
string(4) "qian"
[9]=>
string(4) "zhao"
}
可以看到,最终的结果中包含了来自四个数组的所有元素。
总结
array_merge函数是PHP中非常常用的一个函数,它可以将多个数组合并成一个。在使用array_merge函数时需要注意以下几点:
1、array_merge函数只能处理数值数组或者关联数组。
2、array_merge函数会将数组中的空元素过滤掉。
3、array_merge函数不会改变原数组,它只是将多个数组合并为一个新的数组,并将这个新的数组返回。
4、array_merge函数中的键名会被保留,如果多个数组中有相同的键名,array_merge函数会将后面的键名覆盖前面的键名,并在最终的结果中保留它们。
5、array_merge函数的参数不仅可以是数组,还可以是变量,只要变量中存储的是数组即可。
6、array_merge
