Home >Backend Development >PHP Tutorial >Array merging operation in php_PHP tutorial
Merge multiple arrays
1. Merge arrays
The array_merge() function merges arrays together and returns a union 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:
view sourceprint?1 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 the input array has the same string key name, 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:
view sourceprint?1 $face = array("j","q","k","a");
2 $numbered = array("2","3","4","5","6","7","8","9");
3 $cards = array_merge($face, $numbered);
4 shuffle($cards);
5 print_r($cards);
This will return results as shown below, running the code:
view sourceprint?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 )
2. Recursively append arrays
The array_merge_recursive() function is the same as array_merge(), and 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:
view sourceprint?array array_merge_recursive( array key, array values )
An example is as follows:
view sourceprint?1 $class1 = array("john" => 100, "james" => 85);
2 $class2 = array("micky" => 78, "john" => 45);
3 $classscores = array_merge_recursive($class1, $class2);
4 print_r($classscores);
This will return the following results:
view sourceprint?array ( [john] => array ( [0] => 100 [1] => 45 ) [james] => 85 [micky] => 78 )
3. Connect two arrays
The array_combine() function will get a new array, which consists of a set of submitted keys and corresponding values. Its form is:
view sourceprint?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:
view sourceprint?1 $abbreviations = array("al","ak","az","ar");
2 $states = array("alabama","alaska","arizona","arkansas");
3 $statemap = array_combine($abbreviations,$states);
4 print_r($statemap);
This returns:
view sourceprint?1 array ( [al] => alabama [ak] => alaska [az] => arizona [ar] => arkansas )