Метод except
Метод except класса Arr используется для удаления одного или нескольких ключей из массива. Первым параметром передаётся исходный массив, вторым - ключ или массив ключей, которые нужно исключить. Метод возвращает новый массив, содержащий только те элементы, которых нет в списке исключений.
Синтаксис
<?php
use Illuminate\Support\Arr;
$res = Arr::except($array, $keys);
?>
Пример
Давайте удалим ключ 'b' из массива:
<?php
use Illuminate\Support\Arr;
$array = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$res = Arr::except($array, 'b');
print_r($res);
?>
Результат выполнения кода:
Array
(
[a] => 1
[c] => 3
[d] => 4
[e] => 5
)
Пример
Давайте удалим несколько ключей из массива, передав массив исключаемых ключей:
<?php
use Illuminate\Support\Arr;
$array = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$res = Arr::except($array, ['b', 'd']);
print_r($res);
?>
Результат выполнения кода:
Array
(
[a] => 1
[c] => 3
[e] => 5
)
Пример
Метод except работает с вложенными ключами с использованием точечной нотации:
<?php
use Illuminate\Support\Arr;
$array = [
'user' => [
'name' => 'John',
'age' => 30,
'email' => 'john@example.com'
],
'status' => 'active'
];
$res = Arr::except($array, ['user.age', 'status']);
print_r($res);
?>
Результат выполнения кода:
Array
(
[user] => Array
(
[name] => John
[email] => john@example.com
)
)
Пример
Используем метод except для удаления несуществующего ключа. Такой ключ просто игнорируется:
<?php
use Illuminate\Support\Arr;
$array = ['a' => 1, 'b' => 2, 'c' => 3];
$res = Arr::except($array, ['b', 'x']);
print_r($res);
?>
Результат выполнения кода:
Array
(
[a] => 1
[c] => 3
)
Пример
Метод except возвращает новый массив, не изменяя исходный:
<?php
use Illuminate\Support\Arr;
$array = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];
$res = Arr::except($array, 'c');
echo "Original array: ";
print_r($array);
echo "New array: ";
print_r($res);
?>
Результат выполнения кода:
"Original array: Array ( [a] => 1 [b] => 2 [c] => 3 [d] => 4 )"
"New array: Array ( [a] => 1 [b] => 2 [d] => 4 )"