Yii2 ArrayHelper. Частина 1

345

Від автора: вітаю вас, друзі. Ми продовжуємо цикл статей, присвячених знайомству з фреймворком Yii2. У цій статті ми познайомимося з класом-помічником Yii2 ArrayHelper. Даний хэлпер пропонує набір методів для зручної роботи з масивами.

Масиви і об’єкти — це те, з чим ми працюємо досить часто. І PHP пропонує нам багатий набір нативних функцій, які допомагають вирішувати широке коло завдань. Однак у своїй практиці ми стикаємося з різними завданнями і навіть цього багатства функцій буває мало. У цьому випадку ми змушені писати власні методи, що дозволяють вирішити поставлені завдання.

І тут хорошим помічником буде клас yii\helpers\ArrayHelper, який має в своєму арсеналі майже два десятки методів для роботи з масивами. Давайте ж познайомимося з деякими з цих методів.

Для початку давайте отримаємо деякий масив, з яким і будемо далі експериментувати. Виберемо всі записи з моделі категорій:

$cats = Category::find()->asArray()->all();

І передамо в уявлення, де просто роздрукуємо на екран:

В результаті ми побачимо приблизно такий масив:

Yii2 ArrayHelper. Частина 1

Звичайний багатовимірний масив, з яким ми і попрацюємо. Почнемо з вилучення стовпців і методу getColumn, який і дозволить нам отримати всі значення конкретного ключа в окремий масив. Давайте отримаємо найменування категорій:

$cats = ArrayHelper::getColumn($cats, ‘name’);

Першим параметром ми передали вхідний масив, другим параметром — ключ, значення якого необхідно отримати. А ось і результат:

Yii2 ArrayHelper. Частина 1

Непогано, чи не так? Ніяких додаткових циклів, де б ми змушені були формувати новий масив з потрібних елементів колишнього. Виклик вже готового методу і — результат.

Йдемо далі. Повернемо вихідний масив і спробуємо вказати потрібні нам індекси для нього, наприклад ID категорій. Для цього Yii пропонує метод index, якому ми також передамо аналогічні два параметри.

$cats = ArrayHelper::index($cats, ‘id’);

В результаті ключі масивів категорій були переиндексированы у відповідності з нашими вимогами:

Yii2 ArrayHelper. Частина 1

І останній корисний метод, з якими ми сьогодні познайомимося, — це метод map. Цей метод дозволяє на основі вхідного масиву створити новий, де ключами і значеннями будуть значення зазначених ключів вхідного масиву. Напевно, буде простіше зрозуміти на прикладі. Давайте побудуємо новий масив, взявши з попереднього в якості ключів значення id, а в якості значень візьмемо значення name.

$cats = ArrayHelper::map($cats, ‘id’, ‘name’);

Результат кілька похід на результат роботи методу getColumn, який ми використовували вище, але map в якості ключів взяв саме значення id.

Yii2 ArrayHelper. Частина 1

На цьому поки що зупинимося. Більше про фреймворку ви можете дізнатися з наших безкоштовних або платних уроків. Також створення найпростішого блогу на Yii2 можна подивитися в цьому циклі уроків.