The array_merge()
function combines two or more arrays.
array_merge() renumbers numerical indexes and merges string indexes.
PHP array_merge() function has the following syntax.
array array_merge ( array arr1 [, array arr2 [, array ...]] )
Parameter | Is Required | Description |
---|---|---|
array1 | Required. | Array to merge |
array2 | Optional. | Array to merge |
array3,... | Optional. | Array to merge |
If you want to join two or more arrays together to produce one big array, you need the array_merge() function.
array_merge() joins the array elements of the arrays together to produce the final array. array_push(), array_unshift(), and the square bracket syntax all insert array arguments to produce multidimensional arrays:
<?PHP $authors = array( "Java", "PHP" ); $moreAuthors = array( "CSS", "MySQL" ); array_push( $authors, $moreAuthors ); print_r( $authors ); ?>
The code above generates the following result.
array_merge() preserves the keys of associative arrays, so we can use it to add new key/value pairs to an associative array:
<?PHP $myBook = array( "title" => "Learn PHP from java2s.com", "author" => "java2s.com", "pubYear" => 2000 ); $myBook = array_merge( $myBook, array( "numPages" => 464 ) ); print_r ( $myBook ); ?>
The code above generates the following result.
If you add a key/value pair using a string key existing in the array, the original element gets overwritten. This makes array_merge() useful for updating associative arrays:
<?PHP $myBook = array( "title" => "Learn PHP from java2s.com", "author" => "java2s.com", "pubYear" => 2000 ); $myBook = array_merge( $myBook, array( "title" => "java from java2s.com", "pubYear" => 1952 ) ); print_r ( $myBook ); ?>
The code above generates the following result.
An element with the same numeric key doesn't get overwritten; instead the new element is added to the end of the array and given a new index:
<?PHP $authors = array( "Java", "PHP", "CSS", "HTML" ); $authors = array_merge( $authors, array( 0 => "MySQL" ) ); print_r ( $authors ); ?>
The code above generates the following result.
Use array_merge() to reindex an indexed array by passing the array as the parameter. This ensures that all the elements of an indexed array are consecutively indexed:
<?PHP $authors = array( 4 => "Java", 2 => "PHP", 5 => "CSS", 7 => "HTML" ); print_r( array_merge( $authors ) ); ?>
The code above generates the following result.
Merge associate array
<?php $toppings1 = array("A", "B", "C", "D"); $toppings2 = array("D", "java2s.com", "PHP"); $both_toppings = array_merge($toppings1, $toppings2); var_dump($both_toppings); ?>
The code above generates the following result.
The +
operator in PHP is overloaded so that you can use it to merge
arrays, e.g., $array3 = $array1 + $array2
.
If PHP finds any keys in
the second array that clash with the keys in the first array, they will
be skipped.
<?PHP $arr1 = array("A"=>1, "B"=>2, "C"=>3); $arr2 = array("B"=>3, "C"=>8); $arr3 = $arr1 + $arr2; var_dump(array_merge($arr1, $arr2)); ?>
The code above generates the following result.