• Час читання ~4 хв
  • 11.07.2023

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!

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Про автора CrazyBoy49z
WORK EXPERIENCE
Контакти
Ukraine, Lutsk
+380979856297