📜  php combine 2 arrays keep duplicates - PHP (1)

📅  最后修改于: 2023-12-03 15:03:34.645000             🧑  作者: Mango

PHP: 合并两个数组并保留重复元素

在 PHP 中,有时需要将两个数组合并,但需要保留两个数组中相同的元素。这个问题可以通过使用 array_merge 和 array_intersect 函数来解决。

array_merge 函数

array_merge 函数可以将两个或多个数组合并为一个数组。使用此函数时,如果两个数组中有相同的元素,则后一个数组的元素将覆盖前一个数组中的元素。

$array1 = array('a', 'b', 'c');
$array2 = array('d', 'b', 'e');
$result = array_merge($array1, $array2);
print_r($result);

输出:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => b
    [5] => e
)

从上面的代码中可以看出,当两个数组合并时,元素 'b' 出现两次,因为数组合并时后一个数组的元素覆盖了前一个数组的元素。

array_intersect 函数

array_intersect 函数可以返回两个或多个数组中相同的元素。使用此函数时,会将两个数组的元素进行比较,然后返回相同的元素。

$array1 = array('a', 'b', 'c');
$array2 = array('d', 'b', 'e');
$result = array_intersect($array1, $array2);
print_r($result);

输出:

Array
(
    [1] => b
)

从上面的代码中可以看出,当两个数组进行比较时,只有元素 'b' 是相同的,因此只返回了元素 'b'。

合并两个数组

要合并两个数组并保留重复元素,我们可以先使用 array_merge 函数将两个数组合并,然后使用 array_intersect 函数获取重复元素。

$array1 = array('a', 'b', 'c');
$array2 = array('d', 'b', 'e');
$result = array_intersect(array_merge($array1, $array2), $array2);
print_r($result);

输出:

Array
(
    [1] => b
)

从上面的代码中可以看出,我们先将两个数组合并,然后使用 array_intersect 函数获取重复的元素,最后返回了元素 'b'。

以上就是在 PHP 中合并两个数组并保留重复元素的方法。