我有這個數組:$array = array( ['name' => 'Indor Swimming Pool'], ['name' => 'abracadabra'],);我想按字母順序排序,所以我做了:usort($array, function($a, $b){ return strcmp($a['name'], $b['name']);});但是當我轉儲它時:var_dump($array);我得到:array(2) { [0]=> array(1) { ["name"]=> string(19) "Indor Swimming Pool" } [1]=> array(1) { ["name"]=> string(11) "abracadabra" }}這是不正確的,abracadabra應該先
2 回答

海綿寶寶撒
TA貢獻1809條經驗 獲得超8個贊
根據 ASCII 表 chr?I在前,然后是a?chr
ASCII 表
所以在這里你的數組實際上是按字母順序排序以獲得所需的結果你需要按降序對數組進行排序
<?php
$data = array(
? ? ['name' => 'Indor Swimming Pool'],
? ? ['name' => 'abracadabra'],
);
arsort($data);
?>
輸出
Array
(
? ? [1] => Array
? ? ? ? (
? ? ? ? ? ? [name] => abracadabra
? ? ? ? )
? ? [0] => Array
? ? ? ? (
? ? ? ? ? ? [name] => Indor Swimming Pool
? ? ? ? )
)
- 2 回答
- 0 關注
- 126 瀏覽
添加回答
舉報
0/150
提交
取消