我有一個像這樣的數(shù)組:[ ['number' => '419-1'], ['number' => '302-1'], ['number' => '102-1'], ['number' => '102-11'], ['number' => '203-1'], ['number' => '508-1'], ['number' => '105-1'], ['number' => '102-2'], ['number' => '302-2'],]我想要這樣的輸出:[ ['number' => '102-1'], ['number' => '102-2'], ['number' => '102-11'], ['number' => '105-1'], ['number' => '203-1'], ['number' => '302-1'], ['number' => '302-2'], ['number' => '419-1'], ['number' => '508-1']]問題是數(shù)字存儲為字符串。我想將數(shù)字視為整數(shù)。排序需要按數(shù)字進行。沒有字符串比較。我嘗試過usort,但這沒有幫助。有人可以幫幫我嗎?
2 回答

蕪湖不蕪
TA貢獻1796條經(jīng)驗 獲得超7個贊
$arr = [
['number' => '419-1'],
['number' => '419-11'],
['number' => '102-1'],
['number' => '203-1'],
['number' => '508-1'],
['number' => '105-1'],
['number' => '102-2'],
['number' => '302-2'],
];
usort($arr, function($a,$b){
$an = explode('-',$a['number']);
$bn = explode('-',$b['number']);
if($an[0] == $bn[0]){
return $an[1]*1 > $bn[1]*1;
}
return $an[0]*1 > $bn[0]*1;
});
print_r($arr);
- 2 回答
- 0 關(guān)注
- 130 瀏覽
添加回答
舉報
0/150
提交
取消