Yii2 ArrayHelper. Часть 2

Yii2 ArrayHelper

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

Итак, мы продолжаем знакомиться с помощником по работе с массивами yii\helpers\ArrayHelper. В предыдущей статье мы изучили три метода хэлпера: map, getColumn и index, которые на мой взгляд, могут довольно часто понадобиться в работе. Благодаря удобству использования, мы можем выбрать из массива нужную колонку ключей, переиндексировать массив или взять из массива нужные элементы, создавая новый массив. Очень удобно.

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

Yii2 ArrayHelper

И отсортируем его по наименованию категорий:

Yii2 ArrayHelper

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

Yii2 ArrayHelper

В качестве второго и третьего параметров мы можем передавать и массивы. В этом случае все происходит ровно так, как в языке SQL, когда мы сортируем по более чем одному полю, т.е. вначале сортировка производится по полю, переданному первым элементом массива, а внутри группы уже происходит сортировка по второму критерию.

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

Yii2 ArrayHelper

А теперь внутри группы книг за 2015 год проведем дополнительную сортировку по наименованию, к примеру в обратном порядке. Записывается это следующим образом:

Yii2 ArrayHelper

Думаю, суть работы функции понятна. Еще пара полезных методов, о которых я хочу сказать несколько слов, — это методы htmlEncode и htmlDecode, которые кодирую и декодируют специальные символы, соответственно. Как вы уже догадались, данные методы в своей работе используют соответствующие PHP функции htmlspecialchars и htmlspecialchars_decode.

Для примера создадим массив с парой специальных символов и попробуем его вывести как есть, а после попробуем применить метод htmlEncode и вывести еще раз:

Если взглянуть на страницу в браузере, то разницы мы не увидим:

Yii2 ArrayHelper

Но если открыть исходный код страницы, то мы увидим, что htmlEncode преобразовал специальные символы в HTML-сущности:

Yii2 ArrayHelper

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

Метки:

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

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