Home >Backend Development >PHP Problem >How to merge arrays in php without removing duplicate data
The method for php to merge arrays without removing duplicate data is: by using the array_merge_recursive function, you can merge arrays without removing duplicate data, but merge the duplicate data into a sub-array, so that all data can be retained. And no duplicate data will be lost.
The operating environment of this tutorial: windows10 system, php8.1.3 version, DELL G3 computer.
In PHP, you can use the array_merge function to merge two arrays. The function of the array_merge function is to merge one or more arrays into a new array. However, the array_merge function will deduplicate duplicate data. If we want to merge arrays without removing duplicate data, we can use the array_merge_recursive function.
The array_merge_recursive function has similar functions to the array_merge function, but it does not remove duplicate data. When the same key name exists in the array, the array_merge_recursive function will merge the data with the same key name into a subarray.
Syntax:
array_merge_recursive ( array $array1 [, array $... ] ) : array
Parameter description:
-$array1:要合并的第一个数组,必需。 -$...:要合并的其他数组,可选。
Return value:
The merged array.
The following is an example to demonstrate the use of the array_merge_recursive function:
$array1=array('a'=>'apple','b'=>'banana'); $array2=array('a'=>'orange','c'=>'cherry'); $array3=array('d'=>'durian'); $result=array_merge_recursive($array1,$array2,$array3); print_r($result); 输出结果: Array ( [a]=>Array ( [0]=>apple [1]=>orange ) [b]=>banana [c]=>cherry [d]=>durian )
As you can see, the key 'a' in array $array1 and array $array2 is repeated, but it is merged through the array_merge_recursive function Finally, the duplicate keys are merged into a subarray.
It should be noted that if the same key name has non-array and array when merging arrays, the array_merge_recursive function will convert the non-array value into an array.
For example:
$array1=array('a'=>'apple','b'=>'banana'); $array2=array('a'=>array('orange','cherry')); $result=array_merge_recursive($array1,$array2); print_r($result); 输出结果: Array ( [a]=>Array ( [0]=>apple [1]=>Array ( [0]=>orange [1]=>cherry ) ) [b]=>banana )
In the above example, the key 'a' in the array $array2 is an array, and the key 'a' in the array $array1 is a string. After merging through the array_merge_recursive function, the key 'a' in the array $array1 will be converted into an array.
To summarize, by using the array_merge_recursive function, we can not remove duplicate data when merging arrays, but merge the duplicate data into a sub-array. This way all data is retained and duplicate data is not lost .
The above is the detailed content of How to merge arrays in php without removing duplicate data. For more information, please follow other related articles on the PHP Chinese website!