php array_multisort() 多組數組排序方法_PHP教程

來源:互聯網
上載者:User
在php中array_multisort()可實現一次對多個數組進行排序,或者根據某一維或多維對多維陣列進行排序,如果成功則返回 TRUE,失敗則返回 FALSE。

bool array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]] )

如果成功則返回 TRUE,失敗則返回 FALSE。

array_multisort() 可以用來一次對多個數組進行排序,或者根據某一維或多維對多維陣列進行排序。

關聯(string)鍵名保持不變,但數字鍵名會被重新索引。


例子 1. 對多維陣列排序

代碼如下 複製代碼

$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)
}
}

本例中經過排序後,第一個數組將包含 10,100,100,"a"(作為字串上升排序),第二個數組將包含 1,3,"2",1(作為數值下降排序)。

例子 2. Sorting multi-dimensional array

代碼如下 複製代碼

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

本例中在排序後,第一個數組將變成 "10",100,100,11,"a"(被當作字串以升序排列)。第二個數組將包含 1, 3, "2", 2, 1(被當作數字以降序排列)。

代碼如下 複製代碼
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 綜合實現來看一個關於在應用中常用的執行個體.

代碼如下 複製代碼

header('Content-Type: text/html; charset=utf-8');
echo '
'; 
//原始數組格式
$array = array(
'key1' => array(
'item1' => '65',
'item2' => '35',
'item3' => '84',
),
'key2' => array(
'item1' => '24',
),
'key3' => array(
'item1' => '38',
'item3' => '45',
),
);
//要排序的鍵
//按照數組中的 item1進行排序
//你也可以換成item2
$sort = 'item1';
foreach($array as $k => $v)
{
$newArr[$k] = $v[$sort];
}
//這個函數如果執行正確他會直接改變原數組索引值的順序
//如果執行失敗,那麼他會返回 bool(false)
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"
}
}
//---------------------排序後的數組列印效果 結束---------------------

關於 array_multisort()函數詳解可參考 http://www.bKjia.c0m/phper/php-function/39192.htm

http://www.bkjia.com/PHPjc/629150.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/629150.htmlTechArticle在php中array_multisort()可實現一次對多個數組進行排序,或者根據某一維或多維對多維陣列進行排序,如果成功則返回 TRUE,失敗則返回 FALSE。...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.