欢迎访问宙启技术站
智能推送

PHP中的array_merge函数:将多个数组合并成一个。

发布时间:2023-06-23 15:40:03

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