PHP數(shù)組函數(shù)array_multisort()用法實(shí)例分析
本文實(shí)例分析了PHP數(shù)組函數(shù)array_multisort()用法。分享給大家供大家參考,具體如下:
有時(shí)候我們需要對二維數(shù)組的某個(gè)鍵的值進(jìn)行排序,這里就是討論這個(gè)問題。我們可以使用array_multisort()這個(gè)函數(shù)。array_multisort() 函數(shù)對多個(gè)數(shù)組或多維數(shù)組進(jìn)行排序。
參數(shù)中的數(shù)組被當(dāng)成一個(gè)表的列并以行來進(jìn)行排序 - 這類似 SQL 的 ORDER BY 子句的功能。第一個(gè)數(shù)組是要排序的主要數(shù)組。數(shù)組中的行(值)比較為相同的話,就會按照下一個(gè)輸入數(shù)組中相應(yīng)值的大小進(jìn)行排序,依此類推。
第一個(gè)參數(shù)是數(shù)組,隨后的每一個(gè)參數(shù)可能是數(shù)組,也可能是下面的排序順序標(biāo)志(排序標(biāo)志用于更改默認(rèn)的排列順序)之一:
SORT_ASC - 默認(rèn),按升序排列。(A-Z)
SORT_DESC - 按降序排列。(Z-A)
隨后可以指定排序的類型:
SORT_REGULAR - 默認(rèn)。將每一項(xiàng)按常規(guī)順序排列。
SORT_NUMERIC - 將每一項(xiàng)按數(shù)字順序排列。
SORT_STRING - 將每一項(xiàng)按字母順序排列。
語法:array_multisort(array1,sorting order,sorting type,array2,array3...)
array1:必需。規(guī)定輸入的數(shù)組。
sorting order:可選。規(guī)定排列順序??赡艿闹凳?SORT_ASC 和 SORT_DESC。
sorting type:可選。規(guī)定排序類型??赡艿闹凳荢ORT_REGULAR、SORT_NUMERIC和SORT_STRING。
array2:可選。規(guī)定輸入的數(shù)組。
array3:可選。規(guī)定輸入的數(shù)組。
字符串鍵名將被保留,但是數(shù)字鍵將被重新索引,從 0 開始,并以 1 遞增??梢栽诿總€(gè)數(shù)組后設(shè)置排序順序和排序類型。如果沒有設(shè)置,每個(gè)數(shù)組參數(shù)會使用默認(rèn)值。
下面是一個(gè)例子:
<?php
$arr = '';
echo '二維數(shù)組如下:'.'<br / >';
for($i=0; $i<=5; $i++)
{
$arr[$i]['val'] = mt_rand(1, 100);
$arr[$i]['num'] = mt_rand(1, 100);
}
echo '<pre>';
print_r($arr);
echo '</pre>';
echo '從二維數(shù)組中抽出鍵為val,單獨(dú)成另一個(gè)數(shù)組:'.'<br / >';
foreach ($arr as $key => $row)
{
$vals[$key] = $row['val'];
$nums[$key] = $row['num'];
}
echo '<pre>';
print_r($vals);
echo '</pre>';
echo '對其進(jìn)行排序:'.'<br / >';
array_multisort($vals, SORT_ASC, $arr);
echo '<pre>';
print_r($vals);
echo '</pre>';
?>
運(yùn)行結(jié)果:
二維數(shù)組如下:
Array
(
[0] => Array
(
[val] => 46
[num] => 49
)
[1] => Array
(
[val] => 8
[num] => 24
)
[2] => Array
(
[val] => 37
[num] => 3
)
[3] => Array
(
[val] => 32
[num] => 35
)
[4] => Array
(
[val] => 19
[num] => 38
)
[5] => Array
(
[val] => 30
[num] => 37
)
)
從二維數(shù)組中抽出鍵為val,單獨(dú)成另一個(gè)數(shù)組:
Array
(
[0] => 46
[1] => 8
[2] => 37
[3] => 32
[4] => 19
[5] => 30
)
對其進(jìn)行排序:
Array
(
[0] => 8
[1] => 19
[2] => 30
[3] => 32
[4] => 37
[5] => 46
)
這樣我們將得到一個(gè)按val升序排序的二維數(shù)組。
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP基本語法入門教程》、《php操作office文檔技巧總結(jié)(包括word,excel,access,ppt)》、《php日期與時(shí)間用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
- php中array_multisort對多維數(shù)組排序的方法
- PHP使用array_multisort對多個(gè)數(shù)組或多維數(shù)組進(jìn)行排序
- php二維數(shù)組排序方法(array_multisort usort)
- PHP array_multisort() 函數(shù)的深入解析
- 如何利用php array_multisort函數(shù) 對數(shù)據(jù)庫結(jié)果進(jìn)行復(fù)雜排序
- php的array_multisort()使用方法介紹
- PHP array_multisort()函數(shù)的使用札記
- php 數(shù)組排序 array_multisort與uasort的區(qū)別
- array_multisort實(shí)現(xiàn)PHP多維數(shù)組排序示例講解
- php關(guān)于array_multisort多維數(shù)組排序的使用說明
- php array_map array_multisort 高效處理多維數(shù)組排序
- php array_multisort 對數(shù)組進(jìn)行排序詳解及實(shí)例代碼
相關(guān)文章
PHP一些常用的正則表達(dá)式字符的一些轉(zhuǎn)換
一些前臺的正則運(yùn)行,你可以修改下成為php的2008-07-07
php 5.6版本中編寫一個(gè)PHP擴(kuò)展的簡單示例
這篇文章主要介紹了php 5.6版本中編寫一個(gè)PHP擴(kuò)展的簡單示例,本文給出擴(kuò)展實(shí)現(xiàn)代碼、編譯方法、配置方法和使用例子等內(nèi)容,需要的朋友可以參考下2015-01-01
PHP中addslashes()和stripslashes()實(shí)現(xiàn)字符串轉(zhuǎn)義和還原用法實(shí)例
這篇文章主要介紹了PHP中addslashes()和stripslashes()實(shí)現(xiàn)字符串轉(zhuǎn)義和還原用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了addslashes()和stripslashes()函數(shù)的功能,定義及具體使用技巧,并附帶說明了addslashes()與addcslashes()函數(shù)的區(qū)別,需要的朋友可以參考下2016-01-01
php microtime獲取浮點(diǎn)的時(shí)間戳
看到別人的源碼中用microtime(true),查了下手冊,原來從PHP 5.0.0 開始,microtime增加了這個(gè)參數(shù)。2010-02-02

