php array_multisort() 多組數(shù)組排序方法
來源:程序員人生 發(fā)布時間:2013-11-21 05:03:05 閱讀次數(shù):3215次
在php中array_multisort()可實現(xiàn)一次對多個數(shù)組進行排序,或者根據(jù)某一維或多維對多維數(shù)組進行排序,如果成功則返回 TRUE,失敗則返回 FALSE.
bool array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]] )
如果成功則返回 TRUE,失敗則返回 FALSE.
array_multisort() 可以用來一次對多個數(shù)組進行排序,或者根據(jù)某一維或多維對多維數(shù)組進行排序.
關(guān)聯(lián)(string)鍵名保持不變,但數(shù)字鍵名會被重新索引.
例子 1. 對多維數(shù)組排序?qū)嵗a如下:
- <?php
- $ar = array(
- array("10", 11, 100, 100, "a"),
- array( 1, 2, "2", 3, 1)
- );
- array_multisort($ar[0], SORT_ASC, SORT_STRING,
- $ar[1], SORT_NUMERIC, SORT_DESC);
- var_dump($ar);
- ?>
In this example, after sorting, the first array will transform to "10", 100, 100, 11, "a" (it was sorted as strings in ascending order). The second will contain 1, 3, "2", 2, 1 (sorted as numbers, in descending order).
實例代碼如下:
- array(2) {
- [0]=> array(5) {
- [0]=> string(2) "10"
- [1]=> int(100)
- [2]=> int(100)
- [3]=> int(11)
- [4]=> string(1) "a"
- }
- [1]=> array(5) {
- [0]=> int(1)
- [1]=> int(3)
- [2]=> string(1) "2"
- [3]=> int(2)
- [4]=> int(1)
- }
- }
本例中經(jīng)過排序后,第一個數(shù)組將包含 10,100,100,"a"(作為字符串上升排序),第二個數(shù)組將包含 1,3,"2",1(作為數(shù)值下降排序).
例子 2. Sorting multi-dimensional array實例代碼如下:
- <?php
- $ar = array(
- array("10", 11, 100, 100, "a"),
- array( 1, 2, "2", 3, 1)
- );
- array_multisort($ar[0], SORT_ASC, SORT_STRING,
- $ar[1], SORT_NUMERIC, SORT_DESC);
- var_dump($ar);
- ?>
本例中在排序后,第一個數(shù)組將變成 "10",100,100,11,"a"(被當(dāng)作字符串以升序排列).第二個數(shù)組將包含 1, 3, "2", 2, 1(被當(dāng)作數(shù)字以降序排列).
實例代碼如下:
- array(2) {
- [0]=> array(5) {
- [0]=> string(2) "10"
- [1]=> int(100)
- [2]=> int(100)
- [3]=> int(11)
- [4]=> string(1) "a"
- }
- [1]=> array(5) {
- [0]=> int(1)
- [1]=> int(3)
- [2]=> string(1) "2"
- [3]=> int(2)
- [4]=> int(1)
- }
- }
實例3 綜合實現(xiàn)來看一個關(guān)于在應(yīng)用中常用的實例代碼如下:
- header('Content-Type: text/html; charset=utf-8');
- echo '<pre>';
-
- $array = array(
- 'key1' => array(
- 'item1' => '65',
- 'item2' => '35',
- 'item3' => '84',
- ),
- 'key2' => array(
- 'item1' => '24',
- ),
- 'key3' => array(
- 'item1' => '38',
- 'item3' => '45',
- ),
- );
-
-
-
- $sort = 'item1';
- foreach($array as $k => $v)
- {
- $newArr[$k] = $v[$sort];
- }
-
-
- array_multisort($newArr,SORT_DESC, $array);
- var_dump($array);
-
- array(3) {
- ["key1"]=>
- array(3) {
- ["item1"]=>
- string(2) "65"
- ["item2"]=>
- string(2) "35"
- ["item3"]=>
- string(2) "84"
- }
- ["key3"]=>
- array(2) {
- ["item1"]=>
- string(2) "38"
- ["item3"]=>
- string(2) "45"
- }
- ["key2"]=>
- array(1) {
- ["item1"]=>
- string(2) "24"
- }
- }
-
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈