Метод add
Метод add добавляет пару ключ-значение в массив.
Первым параметром передаётся исходный массив,
вторым - ключ, третьим - значение.
Если ключ уже существует в массиве, то метод вернёт исходный массив без изменений.
Это позволяет безопасно добавлять элементы, не опасаясь перезаписать существующие данные.
Синтаксис
<?php
use Illuminate\Support\Arr;
$array = Arr::add($array, $key, $value);
?>
Пример
Давайте добавим элемент с ключом 'country' в массив пользователя:
<?php
use Illuminate\Support\Arr;
$user = ['name' => 'John', 'age' => 30];
$res = Arr::add($user, 'country', 'USA');
echo json_encode($res);
?>
Результат выполнения кода:
{"name":"John","age":30,"country":"USA"}
Пример
Теперь попробуем добавить элемент с ключом, который уже существует в массиве:
<?php
use Illuminate\Support\Arr;
$user = ['name' => 'John', 'age' => 30];
$res = Arr::add($user, 'age', 40);
echo json_encode($res);
?>
Результат выполнения кода показывает, что значение не было изменено:
{"name":"John","age":30}
Пример
Метод add также поддерживает добавление элементов в многомерные массивы с использованием "точечной" нотации:
<?php
use Illuminate\Support\Arr;
$user = [
'name' => 'Jane',
'profile' => ['bio' => 'Developer']
];
$res = Arr::add($user, 'profile.skills', ['PHP', 'Laravel']);
echo json_encode($res);
?>
Результат выполнения кода:
{"name":"Jane","profile":{"bio":"Developer","skills":["PHP","Laravel"]}}
Пример
Если ключ в точечной нотации уже существует, метод не перезапишет его:
<?php
use Illuminate\Support\Arr;
$user = [
'name' => 'Jane',
'profile' => ['bio' => 'Developer']
];
$res = Arr::add($user, 'profile.bio', 'Designer');
echo json_encode($res);
?>
Результат выполнения кода:
{"name":"Jane","profile":{"bio":"Developer"}}