PHP根據二維數組KEY下標進行排序,多重排序 | array_multisort


1.數據庫里面原始數據,大家可以看到兩列中其實是亂的。那么我想將他按順序進行排序怎么做呢
volume | edition
-------+--------
67 | 2
86 | 1
85 | 6
98 | 2
86 | 6
67 | 7

2.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);


3.進行排序

foreach ($data as $key => $row) {
	$volume[$key]  = $row['volume'];
	$edition[$key] = $row['edition'];
}
//將數據根據 volume 降序排列,根據 edition 升序排列
//把 $data 作為最后一個參數,以通用鍵排序 array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
print_r($data);

 

4.排序結果
volume | edition
-------+--------
98 | 2
86 | 1
86 | 6
85 | 6
67 | 2
67 | 7
怎么樣,看完是不是感覺很強大,其實這個函數還有很多增強型的應用,大家可以翻看一下手冊。。



參數 描述
array1 必需。規定數組。
sorting order

可選。規定排列順序。可能的值:

  • SORT_ASC - 默認。按升序排列 (A-Z)。
  • SORT_DESC - 按降序排列 (Z-A)。
sorting type

可選。規定排序類型。可能的值:

  • SORT_REGULAR - 默認。把每一項按常規順序排列(Standard ASCII,不改變類型)。
  • SORT_NUMERIC - 把每一項作為數字來處理。
  • SORT_STRING - 把每一項作為字符串來處理。
  • SORT_LOCALE_STRING - 把每一項作為字符串來處理,基於當前區域設置(可通過 setlocale() 進行更改)。
  • SORT_NATURAL - 把每一項作為字符串來處理,使用類似 natsort() 的自然排序。
  • SORT_FLAG_CASE - 可以結合(按位或)SORT_STRING 或 SORT_NATURAL 對字符串進行排序,不區分大小寫。
array2 可選。規定數組。
array3

可選。規定數組。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM