иногда бывает нужным отсортировать все элементы коллекции по другому массиву. причем ид могут не принадедать ид коллекции, это моо сделаьт черех такой метод
 
если значения ид коллекции не будут в массиве ид для сортировки то эти ид буду вконце отсортированной коллекции
 
 
/**
 * @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;
 }
                            
                         
                        
                        
                                                    
                        
                     
                    
                
Комментарии
Оставить комментарий
Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)
Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)