Laravel відомий своєю елегантністю, простотою і виразністю. Однією з найпотужніших особливостей Laravel є його допоміжні функції. Помічники масивів Laravel є важливим інструментом для розробників, які працюють з масивами даних.
У цій статті будуть розглянуті деякі допоміжні функції масиву Laravel, які повинен знати кожен розробник. Ці помічники можуть заощадити час і зробити роботу з масивами більш керованою. Ми розглянемо join()
, , , , , first()
last()
keyBy()
get()
і .pluck()
Отже, давайте зануримося і подивимося, що можуть запропонувати помічники Laravel з масиву!
Приєднання до
масиву Ви можете подумати: "навіщо мені цей помічник, коли я можу використовувати join()
або implode()
?"
use Illuminate\Support\Arr;
$stack = ['Tailwind', 'Alpine', 'Laravel', 'Livewire'];
Arr::join($stack, ', ');
// Tailwind, Alpine, Laravel, Livewire
implode($stack, ', ');
// Tailwind, Alpine, Laravel, Livewire
Перераховані вище працюють точно так само, тому я залишу вам вирішувати, який стиль ви віддаєте перевагу.
Помічник join()
дійсно стане в нагоді, коли ви хочете, щоб останнє значення використовувало окремий об'єднувальний рядок:
use Illuminate\Support\Arr;
$stack = ['Tailwind', 'Alpine', 'Laravel', 'Livewire'];
Arr::join($stack, ', ', ', and');
// Tailwind, Alpine, Laravel, and Livewire
дані
ключового масиву Іноді ви берете масив даних (тобто кілька продуктів) і ключите дані за допомогою певного атрибута product. Таким чином, ви можете зручно націлювати дані для заданого ключа.
Можливо, ви написали щось на зразок наступного, створивши нову змінну та запхнувши дані в неї ключовим значенням:Використовуючи метод, Arr::keyBy()
ви можете зробити те ж саме з одним рядком коду:
$array = [
['product_id' => 'prod-100', 'name' => 'Desk'],
['product_id' => 'prod-200', 'name' => 'Chair'],
];
$keyed = [];
foreach ($array as $value) {
$keyed[$value['product_id']] = $value;
}
/*
[
'prod-100' => ['product_id' => 'prod-100', 'name' => 'Desk'],
'prod-200' => ['product_id' => 'prod-200', 'name' => 'Chair'],
]
*/
$keyed = Arr::keyBy($array, 'product_id');
Перевірка та отримання даних з масиву
Могутній Arr::get()
метод простий у використанні, але містить потужну "точкову нотацію", яку можна використовувати для легкого отримання вкладених даних:
use Illuminate\Support\Arr;
$data = [
'products' => [
'desk' => [
'name' => 'Oakendesk'
'price' => 599.00,
'description' => 'Solid oak desk built from scratch.'
],
],
];
// 599.00
Arr::get($data, 'products.desk.price');
// Returns false
Arr::has($data, 'products.desk.discount');
// Returns null
Arr::get($data, 'products.desk.discount');
// Returns custom default value if not found.
Arr::get($data, 'products.desk.discount', ['type' => 'percent', 'value' => 10]);
Отримання першого або останнього елемента в масиві
Коли у вас є масив і ви хочете отримати останній елемент, ви можете досягти end()
функції в PHP:Якщо ваш масив порожній, ви отримаєте false
замість цього:Використовуючи помічник Laravellast()
, у вас є кілька варіантів, коли масив порожній:Використання помічника Laravel також дозволяє передати замикання як другий аргумент як умову, для якого елемента повернути перший або останній відповідно:
$array = [100, 200, 300, 110];
end($array);
$array = [];
end($array); // false
use Illuminate\Support\Arr;
$array = [];
Arr::last($array); // null
// Provide a default
Arr::last($array, null, 100); // 100
$array = [100, 200, 300, 110];
Arr::last($array, fn ($e) => $e > 110); // 300
Arr::first($array, fn ($e) => $e > 110); // 200
Простий, але потужний API для багатьох ситуацій, в яких ви можете опинитися при отриманні першого або останнього елемента в даних масиву.
Вилучення даних з масиву
Іноді вам потрібно отримати один скалярний фрагмент даних із набору даних (тобто електронних листів від користувачів):Помічник Ларавеля Arr::pluck()
робить це тривіальним:Дізнатися більше
$array = [
['user' => ['id' => 1, 'name' => 'User 1', 'email' => '[email protected]']],
['user' => ['id' => 2, 'name' => 'User 2', 'email' => '[email protected]']],
];
$emails = [];
foreach ($array as $result) {
$emails[] = $result['user']['email'];
}
/*
[
"[email protected]",
"[email protected]",
]
*/
Сподіваюся, ви бачили тему:
Arr::pluck($array, 'user.email');
помічники замінюють зайві завдання виразним синтаксисом. Я вважаю, що у них є кілька інших переваг: ми можемо використовувати додаткову потужність, яку деякі з цих методів забезпечують, коли це необхідно (наприклад, умова закриття в first()
і ), і це дозволяє уникнути тимчасових змінних і last()
циклів, які створюють розумові накладні витрати для повторюваних речей.
Хоча на перший погляд помічники функцій на будь-якій мові можуть здатися зайвими від використання вбудованих мовних функцій; однак, сподіваюся, ви бачили, наскільки потужними вони можуть робити зайві речі, які вам потрібно буде робити у багатьох ваших програмах. Ми лише подряпали поверхню всього, що є в класіArr
. Іноді нам потрібні прості помічники масиву, а іноді вам знадобиться потужність колекцій.
Якщо ви новачок у фреймворку Laravel, ознайомтеся з документацією Helpers, щоб дізнатися про всі корисні помічники рядків і масивів у вас під рукою в проектах Laravel. Швидше за все, вам знадобляться ці помічники в інших проектах PHP, які також не використовують Laravel!