| 導購 | 订阅 | 在线投稿
分享
 
 
 

PHP數組排序

來源:互聯網  2008-12-18 07:52:35  評論

PHP數組排序實際上就是將PHP數組進行排序,在本文中也就是對數據庫查詢出來的結果集進行排序。數據庫查詢結果有時候不能直接使用,比如mysql等用in語句出來的結果,因此需要對結果進行某種方式的排序。這時候就需要進行PHP數組排序了。對數據庫結果進行排序請看下面的示例:

本例中data 數組中的每個單元表示一個表中的一行。這是典型的數據庫存放數組數據的方式。

例子中的數據如下:

volume | edition

-------+--------

67 | 2

86 | 1

85 | 6

98 | 2

86 | 6

67 | 7

數據全都存放在名爲 data 的數組中。這通常是通過循環從數據庫取得的結果,例如 mysql_fetch_assoc()(實際上這個函數你可以和mysql_fetch_assoc()函數看成一樣,具體的差別你可以看PHP的手冊裏面關于key的差別)。

$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 降序排列,把 edition 升序排列。

現在有了包含有行的數組,但是 array_multisort() 需要一個包含列的數組,因此用以下代碼來取得列,然後排序。

// 取得列的列表

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

數據集合現在排好序了,結果如下:

volume | edition

-------+--------

98 | 2

86 | 1

86 | 6

85 | 6

67 | 2

67 | 7

實際上真正在排序的時候還有很多方法可以使用,比如php的array數組自帶的 arsort(),asort(),ksort(),krsort(),natsort(),natcasesort(),rsort(),usort(),array_multisort() 和 uksort()。

PHP數組排序實際上就是將PHP數組進行排序,在本文中也就是對數據庫查詢出來的結果集進行排序。數據庫查詢結果有時候不能直接使用,比如mysql等用in語句出來的結果,因此需要對結果進行某種方式的排序。這時候就需要進行PHP數組排序了。對數據庫結果進行排序請看下面的示例: 本例中data 數組中的每個單元表示一個表中的一行。這是典型的數據庫存放數組數據的方式。 例子中的數據如下: volume | edition -------+-------- 67 | 2 86 | 1 85 | 6 98 | 2 86 | 6 67 | 7 數據全都存放在名爲 data 的數組中。這通常是通過循環從數據庫取得的結果,例如 mysql_fetch_assoc()(實際上這個函數你可以和mysql_fetch_assoc()函數看成一樣,具體的差別你可以看PHP的手冊裏面關于key的差別)。 $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 降序排列,把 edition 升序排列。 現在有了包含有行的數組,但是 array_multisort() 需要一個包含列的數組,因此用以下代碼來取得列,然後排序。 // 取得列的列表 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); 數據集合現在排好序了,結果如下: volume | edition -------+-------- 98 | 2 86 | 1 86 | 6 85 | 6 67 | 2 67 | 7 實際上真正在排序的時候還有很多方法可以使用,比如php的array數組自帶的 arsort(),asort(),ksort(),krsort(),natsort(),natcasesort(),rsort(),usort(),array_multisort() 和 uksort()。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有