PHP 數(shù)組排序方法總結(jié) 推薦收藏
隨著PHP的快速發(fā)展,用它的人越來(lái)越多,在PHP數(shù)組學(xué)習(xí)摘錄部分了解到最基本的PHP數(shù)組的建立和數(shù)組元素的顯示。需要深入學(xué)習(xí)下PHP數(shù)組的相關(guān)操作。首先接觸的就是PHP數(shù)組排序、降序的排序問(wèn)題。
sort:本函數(shù)為 array 中的單元賦予新的鍵名。這將刪除原有的鍵名而不僅是重新排序。
rsort:本函數(shù)對(duì)數(shù)組進(jìn)行逆向排序(最高到最低)。 刪除原有的鍵名而不僅是重新排序。
asort:對(duì)數(shù)組進(jìn)行排序并保持索引關(guān)系
arsort:對(duì)數(shù)組進(jìn)行逆向排序并保持索引關(guān)系
ksort:對(duì)數(shù)組按照鍵名排序,保留鍵名到數(shù)據(jù)的關(guān)聯(lián)
krsort:對(duì)數(shù)組按照鍵名逆向排序,保留鍵名到數(shù)據(jù)的關(guān)聯(lián)
natsort:對(duì)字母數(shù)字字符串進(jìn)行排序并保持原有鍵/值的關(guān)聯(lián)
natcasesort:同natsort排序算法,但不區(qū)分大小寫(xiě)字母排序
PHP 數(shù)組排序(sort)
數(shù)字索引數(shù)組排序:
函數(shù):sort(array, [sort type])
說(shuō)明:sort()函數(shù)按升序?qū)χ付〝?shù)組(第一個(gè)參數(shù))進(jìn)行排序。
sort函數(shù)第二參數(shù)作用為指定排序類(lèi)型,是可選參數(shù),可能的值為:
SORT_REGULAR: 默認(rèn)值,不改變類(lèi)型進(jìn)行排序;
SORT_NUMERIC: 把值作為數(shù)字進(jìn)行排序;
SORT_STRING: 把值作為字符串進(jìn)行排序;
如數(shù)組中有4和”37″,按數(shù)字排序,4小于”37″;按字符串排序,4大于”37″;
<?php
$a = array(4,"37",3,100,0,-5);
sort($a);
for ($i=0; $i<6; ++$i){
echo $a[$i]." ";
}
echo "<br />";
sort($a,SORT_STRING);
for ($i=0; $i<6; ++$i){
echo $a[$i]." ";
}
echo "<br />";
?>
輸出結(jié)果:
-5 0 3 4 37 100
-5 0 100 3 37 4
降序排序:rsort(array, [sort type])
參數(shù)用法與sort函數(shù)相同。
關(guān)聯(lián)數(shù)組排序:
函數(shù):asort(array, [sort type])
說(shuō)明:根據(jù)關(guān)聯(lián)數(shù)組的元素值進(jìn)行升序排序。參數(shù)使用見(jiàn)上面的sort函數(shù)。
函數(shù):ksort(array, [sort type])
說(shuō)明:根據(jù)關(guān)聯(lián)數(shù)組的關(guān)鍵字進(jìn)行升序排序。參數(shù)使用見(jiàn)上面的sort函數(shù)。
<?php
$a = array(
"good" => "bad",
"right" => "wrong",
"boy" => "girl");
echo "value sort<br />";
asort($a);
foreach($a as $key => $value){
echo "$key : $value<br />";
}
echo "<br />key sort<br />";
ksort($a);
foreach($a as $key => $value){
echo "$key : $value<br />";
}
?>
輸出結(jié)果:
value sort
good : bad
boy : girl
right : wrong
key sort
boy : girl
good : bad
right : wrong
降序排序:
arsort(array, [sort type]) 與 asort對(duì)應(yīng)
krsort(array, [sort type]) 與 ksort對(duì)應(yīng)
快速創(chuàng)建數(shù)組的函數(shù)range()
比如range()函數(shù)可以快速創(chuàng)建從1到9的數(shù)字?jǐn)?shù)組:
<?php
$numbers=range(1,9);
echo $numbers[1];
?>
當(dāng)然,使用range(9,1)則創(chuàng)建了9到1的數(shù)字?jǐn)?shù)組。同時(shí),range()還可以創(chuàng)建從a到z 的字符數(shù)組:
<?php
$numbers=range(a,z);
foreach ($numbers as $mychrs)
echo $mychrs." ";
?>
使用字符數(shù)組時(shí)注意大小寫(xiě),比如range(A,z)和range(a,Z)是不一樣的。range()函數(shù)還具有第三個(gè)參數(shù),該參數(shù)的作用是設(shè)定步長(zhǎng),比如range(1,9,3)創(chuàng)建的數(shù)組元素是:1、4、7。常見(jiàn)PHP數(shù)組排序一般數(shù)組中的各元素均以字符或數(shù)字表現(xiàn)的,所以可對(duì)數(shù)組元素進(jìn)行升序排列,該功能函數(shù)為sort()。比如:
<?php
$people=array('name','sex','nation','birth');
foreach ($people as $mychrs)
echo $mychrs." ";
sort($people);
echo "<br />---排序后---<br />";
foreach ($people as $mychrs)
echo $mychrs." ";
?>
升序排序后的數(shù)組元素顯示為 birth name nation sex,當(dāng)然,sort()函數(shù)是區(qū)分字母大小寫(xiě)的(字母從大到小的順序是:A…Z…a…z)
Sort()函數(shù)還具有第二參數(shù),用來(lái)說(shuō)明PHP數(shù)組排序升序的規(guī)則是用來(lái)比較數(shù)字還是字符串的。比如:
<?php
echo "---按數(shù)字升序排序---<br />";
$num2=array('26','3',);
sort($num2,SORT_NUMERIC);
foreach ($num2 as $mychrs)
echo $mychrs." ";
echo "<br />---按字符升序排序---<br />";
$num3=array('26','3');
sort($num3,SORT_STRING);
foreach ($num3 as $mychrs)
echo $mychrs." ";
?>
SORT_NUMERIC和SORT_STRING用來(lái)聲明按數(shù)字或字符的升序排列。如果按照數(shù)字升序排列是:3,26;但如果按照字符升序排列則是:26,3了。PHP中除了升序函數(shù)以外,還有降序或稱(chēng)反向排列的函數(shù),就是rsort()函數(shù),比如:$num1=range(1,9);rsort($num1);這里其實(shí)就相當(dāng)于range(9,1)。
- php中二維數(shù)組排序問(wèn)題方法詳解
- array_multisort實(shí)現(xiàn)PHP多維數(shù)組排序示例講解
- php簡(jiǎn)單實(shí)現(xiàn)多維數(shù)組排序的方法
- PHP 冒泡排序 二分查找 順序查找 二維數(shù)組排序算法函數(shù)的詳解
- php不用內(nèi)置函數(shù)對(duì)數(shù)組排序的兩個(gè)算法代碼
- php 數(shù)組排序 array_multisort與uasort的區(qū)別
- php關(guān)于array_multisort多維數(shù)組排序的使用說(shuō)明
- PHP數(shù)組排序之sort、asort與ksort用法實(shí)例
- PHP 簡(jiǎn)單數(shù)組排序?qū)崿F(xiàn)代碼
- PHP常見(jiàn)數(shù)組排序方法小結(jié)
相關(guān)文章
深入掌握include_once與require_once的區(qū)別
要深入掌握include(_once)與require(_once),需要掌握以下幾點(diǎn)內(nèi)容,不過(guò)有人建議不建議使用2013-06-06php+xml實(shí)現(xiàn)在線英文詞典之添加詞條的方法
這篇文章主要介紹了php+xml實(shí)現(xiàn)在線英文詞典之添加詞條的方法,接著上一篇的通過(guò)英文查詢漢字進(jìn)一步完善了詞條的添加功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01php+Ajax處理xml與json格式數(shù)據(jù)的方法示例
這篇文章主要介紹了php+Ajax處理xml與json格式數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了ajax處理xml格式數(shù)據(jù)及json格式數(shù)據(jù)相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-03-03php通過(guò)COM類(lèi)調(diào)用組件的實(shí)現(xiàn)代碼
COM(Component Object Model)組件對(duì)象模型,是一種跨應(yīng)用和語(yǔ)言共享二進(jìn)制代碼的方法。COM可以作為DLL被本機(jī)程序載入也可以通過(guò)DCOM被遠(yuǎn)程進(jìn)程調(diào)用2012-01-01php基礎(chǔ)知識(shí):類(lèi)與對(duì)象(1)
php基礎(chǔ)知識(shí):類(lèi)與對(duì)象(1)...2006-12-12PHP嚴(yán)重致命錯(cuò)誤處理:php Fatal error: Cannot redeclare class or funct
這篇文章主要介紹了PHP嚴(yán)重致命錯(cuò)誤處理:php Fatal error: Cannot redeclare class or function,需要的朋友可以參考下2017-02-02PHP使用CURL實(shí)現(xiàn)多線程抓取網(wǎng)頁(yè)
PHP 利用 Curl 可以完成各種傳送文件操作,比如模擬瀏覽器發(fā)送GET,POST請(qǐng)求等等,然而因?yàn)閜hp語(yǔ)言本身不支持多線程,所以開(kāi)發(fā)爬蟲(chóng)程序效率并不高,不過(guò)可以用 Curl ,借助Curl 這個(gè)功能實(shí)現(xiàn)并發(fā)多線程的訪問(wèn)多個(gè)url地址以實(shí)現(xiàn)并發(fā)多線程抓取網(wǎng)頁(yè)或者下載文件2015-04-04