你好, 我是程序猿零壹。 相信各位PHPer在日常开发中,会经常遇到需要合并数组的场景。那么,在php中都有哪一些方法可以用来合并数组呢。 第一种,使用“+”运算符 使用加号“+”运算符,可以直接将两个数组合并成一个数组。 示例代码:
你好, 我是程序猿零壹。
相信各位PHPer在日常开发中,会经常遇到需要合并数组的场景。那么,在php中都有哪一些方法可以用来合并数组呢。
第一种,使用“+”运算符
使用加号“+”运算符,可以直接将两个数组合并成一个数组。
示例代码:
'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);
输出结果:
// $aarray(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) ["a"]=> string(2) "a"}// $barray(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)}// $carray(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()函数用于将一个或者多个数组合并成一个数组。
如果两个或者多个数组元素有相同的键名,则最后的元素会覆盖其他元素。
示例代码:
'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);
输出结果:
// $aarray(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) ["a"]=> string(1) "a"}// $barray(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)}// $carray(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)}// $earray(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) ["a"]=> string(1) "a"}// $farray(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)}// $garray(0) {}
注意:两个数组的元素键相同的情况下,后面的元素会覆盖前面的元素。但如果数组的索引是数字索引或者数字字符串索引,合并后的数组的数字索引会按照顺序重置,从第一个数组的第一个数字索引元素从0开始依次填充。
第三种,使用array_merge_recursive()函数
用法:array_merge_recursive(array1,array2,array3...)
array_merge_recursive()函数用于将一个或者多个数组合并成一个数组。
示例代码:
'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);
输出结果:
// $aarray(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) ["a"]=> string(1) "a"}// $barray(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)}// $carray(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()函数,通过合并两个数组来创建一个新的数组,其中一个数组元素为键名,另外一个数组的元素为键值。
示例代码:
输出结果:
// $carray(3) { [1]=> string(1) "a" [2]=> string(1) "b" [3]=> string(1) "c"}// $darray(3) { ["a"]=> int(1) ["b"]=> int(2) ["c"]=> int(3)}
注意:键名数组和键值数组的元素个数必须相同!
来源地址:https://blog.csdn.net/u010594957/article/details/127861134
--结束END--
本文标题: php中合并数组的常见方法
本文链接: https://www.lsjlt.com/news/393147.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0