Sort laravvel collection by arrays ids

Практика



иногда бывает нужным отсортировать все элементы коллекции по другому массиву. причем ид могут не принадедать ид коллекции, это моо сделаьт черех такой метод

 

если значения ид коллекции не будут в массиве ид для сортировки то эти ид буду вконце отсортированной коллекции

 

 

/**
 * @param \Illuminate\Support\Collection $collection
 * @param array $sortByIds
 * @return \Illuminate\Support\Collection
 */

 function sortCollectionByArraysIds($collection, $sortByIds)
 {
 $idsOnThisNode = array_intersect($sortByIds, $collection->pluck('id')->toArray());
 $idsSort  = array_merge(
 $ids ,
 array_diff($collection->pluck('id')->toArray(), $ids)
 );

 $collection = $collection->sort(function ($modelCategory, $modelCategorySecond) use ($ids ) {
 return (
 array_search($modelCategorySecond->id, $ids ) >
 array_search($modelCategory->id, $ids ))
 ? -1 : 1;

 });
return $collection;
 }

создано: 2020-04-16
обновлено: 2021-03-13
132265



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:
Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)

Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)