Я пытаюсь сортировать по цвету сначала, а затем сортировать по типу.Сортировка коллекции по нескольким критериям в Laravel
Я думаю, что, возможно, двойные петли foreach не могут быть ответом?
Следующее, что у меня есть до сих пор.
private $color_order = [
'white',
'green',
'purple',
'blue',
''
];
private $type_order = [
'diamond',
'square',
'circle'
];
private function sortCards($cards, $color_order, $type_order) {
$collection = collect($cards);
return $collection->sortBy(function($card) use ($color_order, $type_order) {
foreach ($type_order as $index => $type) {
foreach ($color_order as $index => $color) {
if ($card->card_colors == $color && str_contains($card->card_type, $type)) {
return $index;
}
}
}
})->values();
}
Какая ценность удерживает $ карты? –