[英]sorting array of array in laravel
我有一個數組數組,我想根據每個數組中的數字對其進行排序
[
["Plastic and cosmetic surgery",90],
["Dermatology surgery",121],
["Infertility",134],
["Gynecology surgery",191],
["Hair transplant",92],
["Bariatrics and weight loss surgery",117],
["Dentistry",88]
]
有一個驚人而簡單的默認 laravel 解決方案。
$collection = collect([
["Plastic and cosmetic surgery",90],
["Dermatology surgery",121],
["Infertility",134],
["Gynecology surgery",191],
["Hair transplant",92],
["Bariatrics and weight loss surgery",117],
["Dentistry",88]
]);
$sorted = $collection->sortBy(1);
$data = $sorted->values()->all();
dd($data);
Output
array:7 [▼
0 => array:2 [▼
0 => "Dentistry"
1 => 88
]
1 => array:2 [▼
0 => "Plastic and cosmetic surgery"
1 => 90
]
2 => array:2 [▼
0 => "Hair transplant"
1 => 92
]
3 => array:2 [▼
0 => "Bariatrics and weight loss surgery"
1 => 117
]
4 => array:2 [▼
0 => "Dermatology surgery"
1 => 121
]
5 => array:2 [▼
0 => "Infertility"
1 => 134
]
6 => array:2 [▼
0 => "Gynecology surgery"
1 => 191
]
]
您可以在文檔中查看更多類似的功能。 我希望你會喜歡這個解決方案。
試試這個按數字排序值。
輸入
$array = [
["Plastic and cosmetic surgery",90],
["Dermatology surgery",121],
["Infertility",134],
["Gynecology surgery",191],
["Hair transplant",92],
["Bariatrics and weight loss surgery",117],
["Dentistry",88]
];
usort($array, 'sortByNumber');
function sortByNumber($a, $b)
{
$a = $a[1];
$b = $b[1];
if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
}
echo "<pre>";
print_r($array);
die;
Output
Array
(
[0] => Array
(
[0] => Dentistry
[1] => 88
)
[1] => Array
(
[0] => Plastic and cosmetic surgery
[1] => 90
)
[2] => Array
(
[0] => Hair transplant
[1] => 92
)
[3] => Array
(
[0] => Bariatrics and weight loss surgery
[1] => 117
)
[4] => Array
(
[0] => Dermatology surgery
[1] => 121
)
[5] => Array
(
[0] => Infertility
[1] => 134
)
[6] => Array
(
[0] => Gynecology surgery
[1] => 191
)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.