【发布时间】:2017-06-03 07:34:40
【问题描述】:
我尝试先按颜色排序,然后按类型排序。
我在想也许双 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();
}
【问题讨论】:
-
$cards 有什么价值?
标签: php laravel sorting collections