Быстрая сортировка массива по внешнему списку в PHP
#backend #php #lifehack
Иногда возникает необходимость отсортировать массив объектов или массив значений на основе списка значений, хранящегося в другом массиве.
Рассмотрим пример, когда эталонная последовательность идентификаторов, по которой должны быть отсортированы элементы массива $items
, хранится в переменной $orders
.
Очевидное решение, которое приходит в голову, — алгоритм на основе цикла, который содержит в себе дополнительные условные проверки и переменные для промежуточного хранения результата.
Для получения более оптимального и красивого решения задачи такой специфической сортировки мы воспользовались несколькими стандартными PHP-функциями для работы с массивами.
В алгоритме предусмотрено решение сопутствующей проблемы, когда набор сортируемых ключей массива $items
может не полностью включать в себя значения массива $orders
. Итоговый массив фильтруется по callback-функции, которая проверяет тип значений результирующего массива.
Поэкспериментировать с работой алгоритма можно в «песочнице».
29 января 2021 • Скопировать ссылкуСсылка скопирована