Home >Backend Development >PHP Tutorial >PHP merge, append and join arrays_PHP tutorial
The array_merge() function merges arrays together and returns a combined array. The resulting array starts with the first input array parameter, and is added sequentially in the order in which subsequent array parameters appear. Its form is:
array array_merge (array array1 array2…,arrayN)
Combine the cells of one or more arrays, and the values in one array are appended to the previous array. Returns the resulting array.
If there is the same string key name in the input array, the value after the key name will overwrite the previous value. However, if the array contains numeric keys, the subsequent values will not overwrite the original values, but will be appended to them.
If only an array is given and the array is numerically indexed, the key names are re-indexed consecutively.
Examples are as follows:
$face = array("J","Q","K","A"); $numbered = array("2","3","4","5","6","7","8","9"); $cards = array_merge($face, $numbered); shuffle($cards); print_r($cards);
This will return results as shown below, running the code:
Array ( [0] => A [1] => 4 [2] => 9 [3] => 3 [4] => K [5] => 7 [6] => 5 [7] => Q [8] => 6 [9] => 8 [10] => 2 [11] => J )
The array_merge_recursive() function is the same as array_merge(). It can merge two or more arrays together to form a combined array. The difference between the two is that the function will handle it differently when a key in an input array already exists in the result array. array_merge() will overwrite the previously existing key/value pairs and replace them with the key/value pairs in the current input array, while array_merge_recursive() will merge the two values together to form a new array with the original keys. as an array name. There is also a form of array merging, which is to recursively append arrays. Its form is:
array array_merge_recursive( array key,array values )
An example is as follows:
$class1 = array("John" => 100, "James" => 85); $class2 = array("Micky" => 78, "John" => 45); $classScores = array_merge_recursive($class1, $class2); print_r($classScores);
This will return the following results:
Array ( [John] => Array ( [0] => 100 [1] => 45 ) [James] => 85 [Micky] => 78 )
The array_combine() function will get a new array, which consists of a set of submitted keys and corresponding values. Its form is:
array array_merge(array array1,array array2[…,array arrayN])
Note that the two input arrays must be of the same size and cannot be empty. An example is as follows:
$abbreviations = array("AL","AK","AZ","AR"); $states = array("Alabama","Alaska","Arizona","Arkansas"); $stateMap = array_combine($abbreviations,$states); print_r($stateMap);
This returns:
Array ( [AL] => Alabama [AK] => Alaska [AZ] => Arizona [AR] => Arkansas )