PHP中合并数组有哪些常见方法,能否一一列举?

2026-04-05 14:328阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1671个文字,预计阅读时间需要7分钟。

PHP中合并数组有哪些常见方法,能否一一列举?

在PHP开发中,合并数组是常见的需求。以下是一些简单的方法来合并数组:

1. 使用 + 运算符:可以直接将两个数组通过 + 运算符合并成一个新数组。

2.使用 array_merge() 函数:这是一个内置函数,可以将多个数组合并为一个新数组。

示例代码:

php$array1=[1, 2, 3];$array2=[4, 5, 6];

// 使用 + 运算符合并数组$result=$array1 + $array2;

// 使用 array_merge() 函数合并数组$result=array_merge($array1, $array2);

相信各位phper在日常开发中,会经常遇到需要合并数组的场景。那么,在php中都有哪一些方法可以用来合并数组呢。

第一种,使用“+”运算符

使用加号“+”运算符,可以直接将两个数组合并成一个数组。

示例代码:

PHP中合并数组有哪些常见方法,能否一一列举?

<?php $a = [1,2,3,'a'=>'a']; $b = ['a'=>'aa','b'=>'bb',4,5,6,7,'c'=>'cc',8]; $c = $a + $b; var_dump($a); var_dump($b); var_dump($c);

输出结果:

// $a
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
["a"]=>
string(2) "a"
}

// $b
array(8) {
["a"]=>
string(2) "aa"
["b"]=>
string(2) "bb"
[0]=>
int(4)
[1]=>
int(5)
[2]=>
int(6)
[3]=>
int(7)
["c"]=>
string(2) "cc"
[4]=>
int(8)
}

// $c
array(8) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
["a"]=>
string(2) "a"
["b"]=>
string(2) "bb"
[3]=>
int(7)
["c"]=>
string(2) "cc"
[4]=>
int(8)
}

注意:使用加号“+”运算符进行数组合并,两个数组元素键相同的情况下,前面的元素会覆盖后面的元素。

第二种,使用array_merge()函数

用法:array_merge(array1,array2,array3...)

array_merge()函数用于将一个或者多个数组合并成一个数组。

如果两个或者多个数组元素有相同的键名,则最后的元素会覆盖其他元素。

示例代码:

<?php $a = [1,2,3,'a'=>'a']; $b = ['a'=>'aa','b'=>'bb',4,5,6,7,'c'=>'cc',8]; $c = array_merge($a,$b); $d = []; $e = array_merge($a,$d); $f = array_merge($d,$b); $g = array_merge([],[]); var_dump($a); var_dump($b); var_dump($c); var_dump($e); var_dump($f); var_dump($g);

输出结果:

// $a
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
["a"]=>
string(1) "a"
}
// $b
array(8) {
["a"]=>
string(2) "aa"
["b"]=>
string(2) "bb"
[0]=>
int(4)
[1]=>
int(5)
[2]=>
int(6)
[3]=>
int(7)
["c"]=>
string(2) "cc"
[4]=>
int(8)
}
// $c
array(11) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
["a"]=>
string(2) "aa"
["b"]=>
string(2) "bb"
[3]=>
int(4)
[4]=>
int(5)
[5]=>
int(6)
[6]=>
int(7)
["c"]=>
string(2) "cc"
[7]=>
int(8)
}
// $e
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
["a"]=>
string(1) "a"
}
// $f
array(8) {
["a"]=>
string(2) "aa"
["b"]=>
string(2) "bb"
[0]=>
int(4)
[1]=>
int(5)
[2]=>
int(6)
[3]=>
int(7)
["c"]=>
string(2) "cc"
[4]=>
int(8)
}
// $g
array(0) {
}

注意:两个数组的元素键相同的情况下,后面的元素会覆盖前面的元素。但如果数组的索引是数字索引或者数字字符串索引,合并后的数组的数字索引会按照顺序重置,从第一个数组的第一个数字索引元素从0开始依次填充。

第三种,使用array_merge_recursive()函数

用法:array_merge_recursive(array1,array2,array3...)

array_merge_recursive()函数用于将一个或者多个数组合并成一个数组。

示例代码:

<?php $a = [1,2,3,'a'=>'a']; $b = ['a'=>'aa','b'=>'bb',4,5,6,7,'c'=>'cc',8]; $c = array_merge_recursive($a,$b); var_dump($a); var_dump($b); var_dump($c);

输出结果:

// $a
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
["a"]=>
string(1) "a"
}
// $b
array(8) {
["a"]=>
string(2) "aa"
["b"]=>
string(2) "bb"
[0]=>
int(4)
[1]=>
int(5)
[2]=>
int(6)
[3]=>
int(7)
["c"]=>
string(2) "cc"
[4]=>
int(8)
}
// $c
array(11) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
["a"]=>
array(2) {
[0]=>
string(1) "a"
[1]=>
string(2) "aa"
}
["b"]=>
string(2) "bb"
[3]=>
int(4)
[4]=>
int(5)
[5]=>
int(6)
[6]=>
int(7)
["c"]=>
string(2) "cc"
[7]=>
int(8)
}

注意:如果遇到两个或者多个数组的元素的键相同,array_merge_recursive()不会进行键名覆盖,而是将多个相同键名递归组成一个数组。如果数组的索引是数字索引或者数字字符串索引,合并后的数组的数字索引会按照顺序重置,从第一个数组的第一个数字索引元素从0开始依次填充。

第四种,使用array_combine()函数

用法:array_combine(keys,values)

array_combine()函数,通过合并两个数组来创建一个新的数组,其中一个数组元素为键名,另外一个数组的元素为键值。

示例代码:

<?php $a = [1,2,3]; $b = ['a','b','c']; $c = array_combine($a,$b); $d = array_combine($b,$a); var_dump($c); var_dump($d);

输出结果:

// $c
array(3) {
[1]=>
string(1) "a"
[2]=>
string(1) "b"
[3]=>
string(1) "c"
}
// $d
array(3) {
["a"]=>
int(1)
["b"]=>
int(2)
["c"]=>
int(3)
}

注意:键名数组和键值数组的元素个数必须相同!

到此这篇关于PHP中合并数组的常见方法分享的文章就介绍到这了,更多相关PHP合并数组内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

本文共计1671个文字,预计阅读时间需要7分钟。

PHP中合并数组有哪些常见方法,能否一一列举?

在PHP开发中,合并数组是常见的需求。以下是一些简单的方法来合并数组:

1. 使用 + 运算符:可以直接将两个数组通过 + 运算符合并成一个新数组。

2.使用 array_merge() 函数:这是一个内置函数,可以将多个数组合并为一个新数组。

示例代码:

php$array1=[1, 2, 3];$array2=[4, 5, 6];

// 使用 + 运算符合并数组$result=$array1 + $array2;

// 使用 array_merge() 函数合并数组$result=array_merge($array1, $array2);

相信各位phper在日常开发中,会经常遇到需要合并数组的场景。那么,在php中都有哪一些方法可以用来合并数组呢。

第一种,使用“+”运算符

使用加号“+”运算符,可以直接将两个数组合并成一个数组。

示例代码:

PHP中合并数组有哪些常见方法,能否一一列举?

<?php $a = [1,2,3,'a'=>'a']; $b = ['a'=>'aa','b'=>'bb',4,5,6,7,'c'=>'cc',8]; $c = $a + $b; var_dump($a); var_dump($b); var_dump($c);

输出结果:

// $a
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
["a"]=>
string(2) "a"
}

// $b
array(8) {
["a"]=>
string(2) "aa"
["b"]=>
string(2) "bb"
[0]=>
int(4)
[1]=>
int(5)
[2]=>
int(6)
[3]=>
int(7)
["c"]=>
string(2) "cc"
[4]=>
int(8)
}

// $c
array(8) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
["a"]=>
string(2) "a"
["b"]=>
string(2) "bb"
[3]=>
int(7)
["c"]=>
string(2) "cc"
[4]=>
int(8)
}

注意:使用加号“+”运算符进行数组合并,两个数组元素键相同的情况下,前面的元素会覆盖后面的元素。

第二种,使用array_merge()函数

用法:array_merge(array1,array2,array3...)

array_merge()函数用于将一个或者多个数组合并成一个数组。

如果两个或者多个数组元素有相同的键名,则最后的元素会覆盖其他元素。

示例代码:

<?php $a = [1,2,3,'a'=>'a']; $b = ['a'=>'aa','b'=>'bb',4,5,6,7,'c'=>'cc',8]; $c = array_merge($a,$b); $d = []; $e = array_merge($a,$d); $f = array_merge($d,$b); $g = array_merge([],[]); var_dump($a); var_dump($b); var_dump($c); var_dump($e); var_dump($f); var_dump($g);

输出结果:

// $a
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
["a"]=>
string(1) "a"
}
// $b
array(8) {
["a"]=>
string(2) "aa"
["b"]=>
string(2) "bb"
[0]=>
int(4)
[1]=>
int(5)
[2]=>
int(6)
[3]=>
int(7)
["c"]=>
string(2) "cc"
[4]=>
int(8)
}
// $c
array(11) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
["a"]=>
string(2) "aa"
["b"]=>
string(2) "bb"
[3]=>
int(4)
[4]=>
int(5)
[5]=>
int(6)
[6]=>
int(7)
["c"]=>
string(2) "cc"
[7]=>
int(8)
}
// $e
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
["a"]=>
string(1) "a"
}
// $f
array(8) {
["a"]=>
string(2) "aa"
["b"]=>
string(2) "bb"
[0]=>
int(4)
[1]=>
int(5)
[2]=>
int(6)
[3]=>
int(7)
["c"]=>
string(2) "cc"
[4]=>
int(8)
}
// $g
array(0) {
}

注意:两个数组的元素键相同的情况下,后面的元素会覆盖前面的元素。但如果数组的索引是数字索引或者数字字符串索引,合并后的数组的数字索引会按照顺序重置,从第一个数组的第一个数字索引元素从0开始依次填充。

第三种,使用array_merge_recursive()函数

用法:array_merge_recursive(array1,array2,array3...)

array_merge_recursive()函数用于将一个或者多个数组合并成一个数组。

示例代码:

<?php $a = [1,2,3,'a'=>'a']; $b = ['a'=>'aa','b'=>'bb',4,5,6,7,'c'=>'cc',8]; $c = array_merge_recursive($a,$b); var_dump($a); var_dump($b); var_dump($c);

输出结果:

// $a
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
["a"]=>
string(1) "a"
}
// $b
array(8) {
["a"]=>
string(2) "aa"
["b"]=>
string(2) "bb"
[0]=>
int(4)
[1]=>
int(5)
[2]=>
int(6)
[3]=>
int(7)
["c"]=>
string(2) "cc"
[4]=>
int(8)
}
// $c
array(11) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
["a"]=>
array(2) {
[0]=>
string(1) "a"
[1]=>
string(2) "aa"
}
["b"]=>
string(2) "bb"
[3]=>
int(4)
[4]=>
int(5)
[5]=>
int(6)
[6]=>
int(7)
["c"]=>
string(2) "cc"
[7]=>
int(8)
}

注意:如果遇到两个或者多个数组的元素的键相同,array_merge_recursive()不会进行键名覆盖,而是将多个相同键名递归组成一个数组。如果数组的索引是数字索引或者数字字符串索引,合并后的数组的数字索引会按照顺序重置,从第一个数组的第一个数字索引元素从0开始依次填充。

第四种,使用array_combine()函数

用法:array_combine(keys,values)

array_combine()函数,通过合并两个数组来创建一个新的数组,其中一个数组元素为键名,另外一个数组的元素为键值。

示例代码:

<?php $a = [1,2,3]; $b = ['a','b','c']; $c = array_combine($a,$b); $d = array_combine($b,$a); var_dump($c); var_dump($d);

输出结果:

// $c
array(3) {
[1]=>
string(1) "a"
[2]=>
string(1) "b"
[3]=>
string(1) "c"
}
// $d
array(3) {
["a"]=>
int(1)
["b"]=>
int(2)
["c"]=>
int(3)
}

注意:键名数组和键值数组的元素个数必须相同!

到此这篇关于PHP中合并数组的常见方法分享的文章就介绍到这了,更多相关PHP合并数组内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!