Объединение двух массивов в один без повторения — распространенная задача в PHP. В этой статье блога мы рассмотрим несколько методов достижения этой цели, а также примеры кода. К концу этой статьи вы получите четкое представление о различных подходах к объединению массивов и созданию нового массива без повторяющихся значений.
Метод 1: использование функций array_merge и array_unique
Самый простой способ объединить два массива без повторения — использовать функции array_merge и array_unique в PHP. Вот пример:
$array1 = [1, 2, 3, 4];
$array2 = [3, 4, 5, 6];
$mergedArray = array_unique(array_merge($array1, $array2));
print_r($mergedArray);
Выход:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[6] => 5
[7] => 6
)
Метод 2: использование оператора объединения и функции array_values
Другой подход — использовать оператор объединения (+
) для объединения массивов, а затем использовать функцию array_values для повторной индексации полученного результата. множество. Вот пример:
$array1 = [1, 2, 3, 4];
$array2 = [3, 4, 5, 6];
$mergedArray = array_values($array1 + $array2);
print_r($mergedArray);
Выход:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
)
Метод 3: использование функций array_diff и array_merge
Этот метод предполагает использование функции array_diff для поиска уникальных значений из обоих массивов, а затем их объединение с помощью функции array_merge. Вот пример:
$array1 = [1, 2, 3, 4];
$array2 = [3, 4, 5, 6];
$uniqueValues = array_merge(
array_diff($array1, $array2),
array_diff($array2, $array1)
);
print_r($uniqueValues);
Выход:
Array
(
[0] => 1
[1] => 2
[2] => 5
[3] => 6
)
Метод 4: использование цикла и функции in_array
В этом методе мы перебираем оба массива и используем функцию in_array, чтобы проверить, существует ли уже значение в объединенном массиве. Если нет, мы добавляем его в объединенный массив. Вот пример:
$array1 = [1, 2, 3, 4];
$array2 = [3, 4, 5, 6];
$mergedArray = $array1;
foreach ($array2 as $value) {
if (!in_array($value, $mergedArray)) {
$mergedArray[] = $value;
}
}
print_r($mergedArray);
Выход:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
)