首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 多維陣列排序實戰:以 array_multisort 依多欄位排序

     編輯:PHP 相關知識

資料庫查詢結果的排序需求

使用 IN 查詢時,MySQL 不保證回傳順序,需在 PHP 中對結果集進行自定義排序。本文示範如何將二維陣列依指定欄位進行多重排序。

範例資料結構

$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);

排序目標

  • volume 降序(SORT_DESC)
  • edition 升序(SORT_ASC)

實作步驟

  1. 提取各欄位組成獨立陣列:
foreach ($data as $key => $row) {
    $volume[$key]  = $row['volume'];
    $edition[$key] = $row['edition'];
}
  1. 呼叫 array_multisort(),最後一個參數傳入原陣列 $data 以同步排序:
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);

排序後結果

volumeedition
982
861
866
856
672
677

此技巧適用於任何從資料庫取得的二維陣列排序場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved