Yii2 ArrayHelper. Часть 1

Yii2 ArrayHelper

От автора: приветствую вас, друзья. Мы продолжаем цикл статей, посвященных знакомству с фреймворком Yii2. В этой статье мы познакомимся с классом-помощником Yii2 ArrayHelper. Данный хэлпер предлагает набор методов для удобной работы с массивами.

Массивы и объекты — это то, с чем мы работаем достаточно часто. И PHP предлагает нам богатый набор нативных функций, которые помогают решать широкий круг задач. Однако в своей практике мы сталкиваемся с самыми разными задачами и даже этого богатства функций бывает мало. В этом случае мы вынуждены писать собственные методы, позволяющие решить поставленные задачи.

И здесь хорошим помощником будет класс yii\helpers\ArrayHelper, который имеет в своем арсенале почти два десятка методов для работы с массивами. Давайте же познакомимся с некоторыми из этих методов.

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

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

И передадим в представление, где просто распечатаем на экран:

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее
<pre>
 <?php print_r($cats); ?>
</pre>

В результате мы увидим примерно такой массив:

Yii2 ArrayHelper

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

$cats = ArrayHelper::getColumn($cats, 'name');

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

Yii2 ArrayHelper

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

Идем дальше. Вернем исходный массив и попробуем проставить нужные нам индексы для него, например ID категорий. Для этого Yii предлагает метод index, которому мы также передадим аналогичные два параметра.

$cats = ArrayHelper::index($cats, 'id');

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

Yii2 ArrayHelper

И последний полезный метод, с которым мы сегодня познакомимся, — это метод map. Этот метод позволяет на основе входящего массива создать новый, где ключами и значениями будут значения указанных ключей входящего массива. Наверное, будет проще понять на примере. Давайте построим новый массив, взяв из предыдущего в качестве ключей значения id, а в качестве значений возьмем значения name.

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

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

Yii2 ArrayHelper

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

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее
Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Фреймворк YII2. Быстрая разработка с современным фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Научиться

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree