PHP合并数组的三种方法的分析与比较

Posted wp1996

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP合并数组的三种方法的分析与比较相关的知识,希望对你有一定的参考价值。

常用的合并数组的方法有三种:array_merge()、array_merge_recursive()、+,下面一个一个介绍

array_merge()

此函数合并一个或多个数组,当输入的数组中有相同的字符串键名,则后一个会覆盖前一个。对于参数数组中数字索引的值会重新排序,不管数字索引相同还是不同。

代码如下:

$arr1 = array(‘name‘ => ‘tom‘, 123, 456);
$arr2 = array(‘age‘ => 13, ‘name‘ => ‘peter‘, ‘hello‘, ‘world‘);
$arr = array_merge($arr1, $arr2);
var_dump($arr1);
var_dump($arr2);
var_dump($arr);

运行结果:


array (size=3)
  ‘name‘ => string ‘tom‘ (length=3)
  0 => int 123
  1 => int 456

array (size=4)
  ‘age‘ => int 13
  ‘name‘ => string ‘peter‘ (length=5)
  0 => string ‘hello‘ (length=5)
  1 => string ‘world‘ (length=5)

array (size=6)
  ‘name‘ => string ‘peter‘ (length=5)
  0 => int 123
  1 => int 456
  ‘age‘ => int 13
  2 => string ‘hello‘ (length=5)
  3 => string ‘world‘ (length=5)

array_merge_recursive()

此函数会递归地合并一个或多个数组,当输入的数组中有相同的字符串键名时会合并到一个数组中,而不是覆盖

代码如下:

$arr1 = array(‘name‘ => ‘tom‘, 123, 456);
$arr2 = array(‘age‘ => 13, ‘name‘ => ‘peter‘, ‘hello‘, ‘world‘);
$arr = array_merge_recursive($arr1, $arr2);
var_dump($arr1);
var_dump($arr2);
var_dump($arr);

运行结果:


array (size=3)
  ‘name‘ => string ‘tom‘ (length=3)
  0 => int 123
  1 => int 456

array (size=4)
  ‘age‘ => int 13
  ‘name‘ => string ‘peter‘ (length=5)
  0 => string ‘hello‘ (length=5)
  1 => string ‘world‘ (length=5)

array (size=6)
  ‘name‘ => 
    array (size=2)
      0 => string ‘tom‘ (length=3)
      1 => string ‘peter‘ (length=5)
  0 => int 123
  1 => int 456
  ‘age‘ => int 13
  2 => string ‘hello‘ (length=5)
  3 => string ‘world‘ (length=5)

+

加号在合并数组时如果出现数组中有相同的字符串键名或者是相同的数字索引时都会进行前边的值覆盖后边的值。

代码如下:

 

$arr1 = array(‘name‘ => ‘tom‘, 123, 456);
$arr2 = array(‘age‘ => 13, ‘name‘ => ‘peter‘, ‘hello‘, ‘world‘);
$arr = $arr1 + $arr2;
var_dump($arr1);
var_dump($arr2);
var_dump($arr);

 

运行结果:


array (size=3)
  ‘name‘ => string ‘tom‘ (length=3)
  0 => int 123
  1 => int 456

array (size=4)
  ‘age‘ => int 13
  ‘name‘ => string ‘peter‘ (length=5)
  0 => string ‘hello‘ (length=5)
  1 => string ‘world‘ (length=5)

array (size=4)
  ‘name‘ => string ‘tom‘ (length=3)
  0 => int 123
  1 => int 456
  ‘age‘ => int 13

 

以上是关于PHP合并数组的三种方法的分析与比较的主要内容,如果未能解决你的问题,请参考以下文章

js数组去重的三种常用方法总结

数组去重的三种方法

使用ffmpeg合并视频文件的三种方法

PHP实现链式操作的三种方法详解

PHP中数组的三种排序方法

go语言中实现切片(slice)的三种方式