Метод pull класса Arr
Метод pull класса Arr извлекает элемент массива по ключу и одновременно удаляет его из исходного массива. Первым параметром передаётся массив, вторым - ключ, значение которого нужно извлечь. Третий параметр необязательный - значение по умолчанию, которое будет возвращено, если ключ не существует. Метод возвращает значение извлечённого элемента, а исходный массив модифицируется.
Синтаксис
<?php
use Illuminate\Support\Arr;
$res = Arr::pull($array, $key, $default);
?>
Пример
Давайте извлечём элемент с ключом 'name' из массива пользователя:
<?php
use Illuminate\Support\Arr;
$user = ['name' => 'John', 'age' => 30, 'email' => 'john@example.com'];
$name = Arr::pull($user, 'name');
echo $name;
print_r($user);
?>
Результат выполнения кода:
"John"
Array
(
[age] => 30
[email] => john@example.com
)
Пример
Если ключ отсутствует в массиве, метод возвращает null:
<?php
use Illuminate\Support\Arr;
$data = ['a' => 1, 'b' => 2, 'c' => 3];
$res = Arr::pull($data, 'd');
var_dump($res);
print_r($data);
?>
Результат выполнения кода:
NULL
Array
(
[a] => 1
[b] => 2
[c] => 3
)
Пример
Можно указать значение по умолчанию, если ключ отсутствует:
<?php
use Illuminate\Support\Arr;
$config = ['host' => 'localhost', 'port' => 3306];
$res = Arr::pull($config, 'username', 'root');
echo $res;
print_r($config);
?>
Результат выполнения кода:
"root"
Array
(
[host] => localhost
[port] => 3306
)
Пример
Метод pull удобно использовать для извлечения вложенных элементов с помощью "точечной" нотации:
<?php
use Illuminate\Support\Arr;
$data = [
'user' => [
'profile' => [
'name' => 'Alice',
'age' => 25
]
]
];
$name = Arr::pull($data, 'user.profile.name');
echo $name;
print_r($data);
?>
Результат выполнения кода:
"Alice"
Array
(
[user] => Array
(
[profile] => Array
(
[age] => 25
)
)
)