Home  >  Article  >  Backend Development  >  How to merge two arrays in php

How to merge two arrays in php

zbt
zbtOriginal
2023-06-12 11:07:452239browse

php Method to merge two arrays: 1. Use the " " operator to directly merge two arrays into one array; 2. Use the "array_merge()" function to merge one or more arrays into an array; 3. Use the "array_merge_recursive()" function to merge one or more arrays into one array; 4. Use the "array_combine()" function to merge two arrays to create a new array.

How to merge two arrays in php

The operating environment of this tutorial: Windows 10 system, php8.1.3 version, DELL G3 computer.

I believe that in your daily development of PHP, you will often encounter scenarios where you need to merge arrays. So, what methods can be used to merge arrays in php?

The first method is to use the " " operator

Using the plus " " operator, you can directly merge two arrays into one array.

Sample code:

<?php
$a = [1,2,3,&#39;a&#39;=>'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);

Output result:

// $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)
}

Note: Use the plus sign " " operator to merge arrays. When the keys of the two array elements are the same, the previous The elements will overwrite the following elements.

Second, use array_merge() function

Usage: array_merge(array1,array2,array3...)

array_merge() function Used to combine one or more arrays into one array.

If two or more array elements have the same key name, the last element will overwrite the other elements.

Sample code:

<?php
$a = [1,2,3,&#39;a&#39;=>'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);

Output result:

// $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) {
}

Note: When the element keys of the two arrays are the same, the later elements will overwrite the previous elements. But if the index of the array is a numeric index or a numeric string index, the numeric index of the merged array will be reset in order, and the first numeric index element of the first array will be filled in sequence starting from 0.

The third method is to use array_merge_recursive() function

Usage: array_merge_recursive(array1,array2,array3...)

array_merge_recursive() function Used to combine one or more arrays into one array.

Sample code:

<?php
$a = [1,2,3,&#39;a&#39;=>'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);

Output result:

// $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)
}

Note: If two or more array elements have the same key, array_merge_recursive() will not perform keying Name overwriting, instead, multiple identical key names are recursively formed into an array. If the index of the array is a numeric index or a numeric string index, the numeric index of the merged array will be reset in order, starting from the first numeric index element of the first array and filling it in sequence from 0.

The fourth method is to use the array_combine() function

Usage: array_combine(keys, values)

array_combine() function, by merging two array to create a new array in which one array element is the key name and the other array element is the key value.

Sample code:

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

Output result:

// $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)
}

Note: The number of elements in the key name array and the key value array must be the same!

The above is the detailed content of How to merge two arrays in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn