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