php的array_multisort()使用方法介紹
使用 array_multisort()函數(shù)對(duì)多個(gè)數(shù)組或多維數(shù)組進(jìn)行排序的函數(shù),正在研究數(shù)組排序、多維數(shù)組排序的朋友可以看看。
函數(shù) bool array_multisort ( array &$arr [, mixed $arg = SORT_ASC [, mixed $arg = SORT_REGULAR [, mixed $...]]] )
參數(shù)說(shuō)明: 函數(shù)對(duì)多個(gè)數(shù)組或多維數(shù)組進(jìn)行排序
第一個(gè)參數(shù)是數(shù)組,隨后的每一個(gè)參數(shù)可能是數(shù)組,也可能是下面的排序順序標(biāo)志
SORT_ASC - 默認(rèn),按升序排列
SORT_DESC - 按降序排列
隨后可以指定排序的類型
SORT_REGULAR - 默認(rèn)。將每一項(xiàng)按常規(guī)順序排列。
SORT_NUMERIC - 將每一項(xiàng)按數(shù)字順序排列。
SORT_STRING - 將每一項(xiàng)按字母順序排列。
例:
<?php
$arr1 = array('10', 11, 100, 100, 'a');
$arr2 = array(1, 2, 3, '2', 5);
array_multisort($arr1, $arr2);
?>
結(jié)果為:
$arr1
Array ( [0] => 10 [1] => a [2] => 11 [3] => 100 [4] => 100 )
# '10'在與11, 100, 100比較時(shí)轉(zhuǎn)換為整數(shù)10,小于其他三個(gè)數(shù)
# '10'在于'a'比較時(shí)作為字符串,其第一個(gè)字符'1'ascii碼值為49小于‘a(chǎn)'(ascii值為97),所以‘10'為最小元素
# 'a'在于其他三個(gè)數(shù)字比較時(shí),轉(zhuǎn)換為整數(shù)0,小于其他三個(gè)數(shù)
$arr2
Array ( [0] => 1 [1] => 5 [2] => 2 [3] => 2 [4] => 3 )
# $arr2元素1與$arr1元素'10'位置對(duì)應(yīng),所以排在[0]位置
# $arr1[2] => 100, $arr1[3] => 100分別對(duì)應(yīng)$arr2元素3, '2'。3大于'2',所以與2對(duì)應(yīng)的$arr1[2] => 100排序后的下標(biāo)為3,與3對(duì)應(yīng)的$arr1[3] => 100排序的下標(biāo)為4
總結(jié)----------
1.參與排序的數(shù)組元素?cái)?shù)保持一致
2.排序數(shù)組元素位置對(duì)應(yīng)如, ‘10' => 1 , 11 => 2
3.后邊的數(shù)組在前邊數(shù)組的順序的基礎(chǔ)上進(jìn)行排序
4.前邊的數(shù)組如遇相等的元素則比較后邊的數(shù)組
下邊就是使用的實(shí)例,手冊(cè)上的例子不列了,就我自己工作中的幾個(gè)。
工作中碰到最多的可能就是二維數(shù)組了,想試試三維數(shù)組,但是想想還是算了。
header('Content-Type: text/html; charset=utf-8');
echo '<pre>';
//原始數(shù)組格式
$array = array(
'key1' => array(
'item1' => '65',
'item2' => '35',
'item3' => '84',
),
'key2' => array(
'item1' => '24',
),
'key3' => array(
'item1' => '38',
'item3' => '45',
),
);
//要排序的鍵
//按照數(shù)組中的 item1進(jìn)行排序
//你也可以換成item2
$sort = 'item1';
foreach($array as $k => $v)
{
$newArr[$k] = $v[$sort];
}
//這個(gè)函數(shù)如果執(zhí)行正確他會(huì)直接改變?cè)瓟?shù)組鍵值的順序
//如果執(zhí)行失敗,那么他會(huì)返回 bool(false)
array_multisort($newArr,SORT_DESC, $array);
var_dump($array);
//---------------------排序后的數(shù)組打印效果 開(kāi)始--------------------
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"
}
}
//---------------------排序后的數(shù)組打印效果 結(jié)束---------------------
- PHP數(shù)組函數(shù)array_multisort()用法實(shí)例分析
- php中array_multisort對(duì)多維數(shù)組排序的方法
- PHP使用array_multisort對(duì)多個(gè)數(shù)組或多維數(shù)組進(jìn)行排序
- php二維數(shù)組排序方法(array_multisort usort)
- PHP array_multisort() 函數(shù)的深入解析
- 如何利用php array_multisort函數(shù) 對(duì)數(shù)據(jù)庫(kù)結(jié)果進(jìn)行復(fù)雜排序
- PHP array_multisort()函數(shù)的使用札記
- php 數(shù)組排序 array_multisort與uasort的區(qū)別
- array_multisort實(shí)現(xiàn)PHP多維數(shù)組排序示例講解
- php關(guān)于array_multisort多維數(shù)組排序的使用說(shuō)明
- php array_map array_multisort 高效處理多維數(shù)組排序
- php array_multisort 對(duì)數(shù)組進(jìn)行排序詳解及實(shí)例代碼
相關(guān)文章
用PHP連接Oracle for NT 遠(yuǎn)程數(shù)據(jù)庫(kù)
用PHP連接Oracle for NT 遠(yuǎn)程數(shù)據(jù)庫(kù)...2006-10-10PHP 第二節(jié) 數(shù)據(jù)類型之字符串類型
PHP 數(shù)據(jù)類型之字符串類型,一般就是用單引號(hào)或雙引號(hào)包括的東西2012-04-04laravel入門(mén)知識(shí)點(diǎn)整理
作為PHP最常用的框架之一,Laravel的框架目錄布置得尤其清晰,適用于各種類型的項(xiàng)目開(kāi)發(fā)。今天來(lái)記錄下laravel入門(mén)需要熟悉的知識(shí)點(diǎn)2020-09-09PHP反轉(zhuǎn)字符串函數(shù)strrev()函數(shù)的用法
strrev()函數(shù)的用法,很好玩的函數(shù),主要功能就是把字符串進(jìn)行首尾顛倒并把顛倒后的結(jié)果返回2012-02-02