5 эффективных способов объединить массивы как ключи в PHP

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

Метод 1: использование array_combine()
Функция array_combine() — это простой и эффективный способ объединить два массива, используя один массив в качестве ключей, а другой — в качестве значений. Вот пример:

$keys = ['apple', 'banana', 'orange'];
$values = [2, 5, 3];
$result = array_combine($keys, $values);
print_r($result);

Выход:

Array
(
    [apple] => 2
    [banana] => 5
    [orange] => 3
)

Метод 2: использование array_map() с нулевым значением в качестве функции обратного вызова
Функция array_map() сопоставляет каждый ключ из одного массива с соответствующим значением из другого массива. Передав null в качестве функции обратного вызова, мы можем добиться желаемого результата. Вот пример:

$keys = ['apple', 'banana', 'orange'];
$values = [2, 5, 3];
$result = array_map(null, $keys, $values);
print_r($result);

Выход:

Array
(
    [apple] => 2
    [banana] => 5
    [orange] => 3
)

Метод 3: использование цикла foreach
Вы можете использовать цикл foreach для перебора одного массива и создания нового массива с ключами из одного массива и значениями из другого. Вот пример:

$keys = ['apple', 'banana', 'orange'];
$values = [2, 5, 3];
$result = [];
foreach ($keys as $index => $key) {
    $result[$key] = $values[$index];
}
print_r($result);

Выход:

Array
(
    [apple] => 2
    [banana] => 5
    [orange] => 3
)

Метод 4: использование array_reduce()
Функция array_reduce() позволяет нам перебирать один массив и накапливать пары ключ-значение в один массив. Вот пример:

$keys = ['apple', 'banana', 'orange'];
$values = [2, 5, 3];
$result = array_reduce($keys, function ($carry, $key) use ($values) {
    $carry[$key] = array_shift($values);
    return $carry;
}, []);
print_r($result);

Выход:

Array
(
    [apple] => 2
    [banana] => 5
    [orange] => 3
)

Метод 5: использование функции array_combine() вместе с самой array_combine()
В этом методе мы можем использовать функцию array_combine() дважды, чтобы объединить два массива в качестве ключей к другому. Вот пример:

$keys = ['apple', 'banana', 'orange'];
$values = [2, 5, 3];
$result = array_combine($keys, array_combine($keys, $values));
print_r($result);

Выход:

Array
(
    [apple] => 2
    [banana] => 5
    [orange] => 3
)