Метод pluck
Метод pluck класса Arr позволяет извлечь значения по заданному ключу из каждого элемента массива. Первым параметром передаётся ключ или путь к значению в формате "ключ.вложенный.ключ". Вторым параметром можно передать ключ, который будет использоваться в качестве ключей результирующего массива. Если ключи не указаны, результирующий массив будет иметь числовые индексы.
Синтаксис
<?php
use Illuminate\Support\Arr;
$res = Arr::pluck($array, $valueKey, $keyKey);
?>
Пример
Давайте извлечём значения по ключу 'name' из массива пользователей:
<?php
use Illuminate\Support\Arr;
$users = [
['id' => 1, 'name' => 'user1', 'age' => 25],
['id' => 2, 'name' => 'user2', 'age' => 30],
['id' => 3, 'name' => 'user3', 'age' => 22],
];
$res = Arr::pluck($users, 'name');
print_r($res);
?>
Результат выполнения кода:
["user1", "user2", "user3"]
Пример
Давайте извлечём значения по ключу 'name', используя ключ 'id' в качестве ключей результирующего массива:
<?php
use Illuminate\Support\Arr;
$users = [
['id' => 1, 'name' => 'user1', 'age' => 25],
['id' => 2, 'name' => 'user2', 'age' => 30],
['id' => 3, 'name' => 'user3', 'age' => 22],
];
$res = Arr::pluck($users, 'name', 'id');
print_r($res);
?>
Результат выполнения кода:
[1 => "user1", 2 => "user2", 3 => "user3"]
Пример
Давайте извлечём вложенные значения, используя синтаксис "ключ.вложенный.ключ":
<?php
use Illuminate\Support\Arr;
$posts = [
['id' => 1, 'title' => 'article 1', 'author' => ['name' => 'writer1', 'email' => 'writer1@example.com']],
['id' => 2, 'title' => 'article 2', 'author' => ['name' => 'writer2', 'email' => 'writer2@example.com']],
['id' => 3, 'title' => 'article 3', 'author' => ['name' => 'writer3', 'email' => 'writer3@example.com']],
];
$res = Arr::pluck($posts, 'author.name');
print_r($res);
?>
Результат выполнения кода:
["writer1", "writer2", "writer3"]