Home >Backend Development >PHP Problem >How to merge arrays in php without removing duplicate data

How to merge arrays in php without removing duplicate data

zbt
zbtOriginal
2023-07-13 16:55:021303browse

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.

How to merge arrays in php without removing duplicate data

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!

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