Объединение значений двух массивов в PHP: методы и примеры

В PHP объединение значений двух массивов может быть распространенной задачей при работе с данными и их обработке. В этой статье блога мы рассмотрим различные методы достижения этой цели, а также примеры кода. Если вам нужно объединить массивы, объединить их на основе ключей или значений или выполнить собственные операции, мы поможем вам!

Метод 1: использование array_merge
Функция array_merge позволяет объединить два или более массивов в один массив. Он объединяет значения массивов, сохраняя ключи.

$array1 = [1, 2, 3];
$array2 = [4, 5, 6];
$combinedArray = array_merge($array1, $array2);
print_r($combinedArray);

Выход:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
)

Метод 2: использование array_combine
Функция array_combine создает массив, используя один массив для ключей и другой массив для его значений. Массивы должны иметь одинаковую длину.

$keys = ['name', 'age', 'country'];
$values = ['John', 25, 'USA'];
$combinedArray = array_combine($keys, $values);
print_r($combinedArray);

Выход:

Array
(
    [name] => John
    [age] => 25
    [country] => USA
)

Метод 3: использование array_merge_recursive
Если у вас есть многомерные массивы и вы хотите объединить их, сохраняя при этом повторяющиеся значения, вы можете использовать функцию array_merge_recursive.

$array1 = ['colors' => ['red', 'green']];
$array2 = ['colors' => ['blue', 'yellow']];
$combinedArray = array_merge_recursive($array1, $array2);
print_r($combinedArray);

Выход:

Array
(
    [colors] => Array
        (
            [0] => red
            [1] => green
            [2] => blue
            [3] => yellow
        )
)

Метод 4. Использование array_walk
Функция array_walk позволяет перебирать массив и применять пользовательскую функцию для изменения его значений.

$array1 = [1, 2, 3];
$array2 = [4, 5, 6];
$combinedArray = [];
array_walk($array1, function ($value, $key) use (&$combinedArray, $array2) {
    $combinedArray[$key] = $value + $array2[$key];
});
print_r($combinedArray);

Выход:

Array
(
    [0] => 5
    [1] => 7
    [2] => 9
)

Метод 5: использование array_reduce
Функция array_reduce применяет функцию обратного вызова к каждому элементу массива, уменьшая его до одного значения.

$array1 = [1, 2, 3];
$array2 = [4, 5, 6];
$combinedArray = array_reduce($array1, function ($carry, $item) use ($array2) {
    $index = array_search($item, $array1);
    $carry[] = $item + $array2[$index];
    return $carry;
}, []);
print_r($combinedArray);

Выход:

Array
(
    [0] => 5
    [1] => 7
    [2] => 9
)

В этой статье мы рассмотрели несколько методов объединения значений двух массивов в PHP. В зависимости от ваших конкретных требований вы можете использовать array_merge, array_combine, array_merge_recursive, array_walk или array_reduce. Понимая эти методы и соответствующие варианты их использования, вы сможете эффективно манипулировать и обрабатывать данные массивов в своих приложениях PHP.