二維數組排序本質是「按某列排序並保持鍵值關聯」。
function array_sort($arr, $key, $order=0) {
$keyArray = array_column($arr, $key);
$order ? arsort($keyArray) : asort($keyArray);
$newArr = [];
foreach ($keyArray as $k => $v) $newArr[] = $arr[$k];
return $newArr;
}
usort($arr, function($a, $b) { return $b['id'] - $a['id']; }); // 降序
$vol = array_column($data, 'volume'); $ed = array_column($data, 'edition'); array_multisort($vol, SORT_DESC, $ed, SORT_ASC, $data);
| 場景 | 推薦方法 |
|---|---|
| 單列、任意類型、需穩定 | asort/arsort + 重建 |
| 單列、純數值、追求簡潔 | usort |
| 多列混合排序 | array_multisort |