這篇文章主要講解了“PHP中數(shù)組元素升序、降序以及重新排序的函數(shù)用法”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“PHP中數(shù)組元素升序、降序以及重新排序的函數(shù)用法”吧!
1,快速創(chuàng)建數(shù)組的函數(shù)range()
比如range()函數(shù)可以快速創(chuàng)建從1到9的數(shù)字?jǐn)?shù)組:
復(fù)制代碼 代碼如下:
<?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ù)組:
復(fù)制代碼 代碼如下:
<?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
2,PHP中常規(guī)數(shù)組的排序
一般數(shù)組中的各元素均以字符或數(shù)字表現(xiàn)的,所以可對(duì)數(shù)組元素進(jìn)行升序排列,該功能函數(shù)為sort()。比如:
復(fù)制代碼 代碼如下:
<?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ō)明升序的規(guī)則是用來(lái)比較數(shù)字還是字符串的。比如:
復(fù)制代碼 代碼如下:
<?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ù),比如:
復(fù)制代碼 代碼如下:
$num1=range(1,9);
rsort($num1);
這里其實(shí)就相當(dāng)于range(9,1)
3,PHP中關(guān)聯(lián)數(shù)組的排序
PHP除了支持?jǐn)?shù)字索引數(shù)組以外,還支持相關(guān)數(shù)組。比如如下數(shù)組就是一個(gè)相關(guān)(關(guān)聯(lián))數(shù)組:
復(fù)制代碼 代碼如下:
$peoples=array('xm'=>'name','xb'=>'sex','mz'=>'nation','cs'=>'birth');
使用sort($peoples)默認(rèn)即是按照元素定義值的升序排序,在關(guān)聯(lián)數(shù)組中可使用asort()函數(shù)表示,關(guān)聯(lián)數(shù)組中最主要的則是可按照關(guān)鍵字(如xm、xb、mz等)的升序排序,該方法是用函數(shù)ksort()函數(shù)。
復(fù)制代碼 代碼如下:
<?php
$peoples=array('xm'=>'name','xb'=>'sex','mz'=>'nation','cs'=>'birth');
foreach ($peoples as $mychrs)
echo $mychrs." ";
echo "<br />--按元素值升序排列--<br />";
asort($peoples);
foreach ($peoples as $mychrs)
echo $mychrs." ";
echo "<br />--按關(guān)鍵字升序排列--<br />";
ksort($peoples);
foreach ($peoples as $mychrs)
echo $mychrs." ";
?>
和常規(guī)數(shù)組擁有sort()升序函數(shù)的反向排序rsort()降序函數(shù)相對(duì)應(yīng)的,關(guān)聯(lián)數(shù)組也有對(duì)應(yīng)的降序函數(shù):asort()函數(shù)和arsort()函數(shù)、ksort()函數(shù)和krsort()函數(shù)。
記憶:原型函數(shù)是sort(),其中a、k表示關(guān)聯(lián)數(shù)組相關(guān)必須前置,反向排序使用r修飾。
4,PHP數(shù)組元素隨機(jī)排序
PHP中使用shuffle()函數(shù)將數(shù)組元素進(jìn)行隨機(jī)的重新排序,比如:
復(fù)制代碼 代碼如下:
<?php
$fer=array('cnbruce','cnrose','cnjames','cnanne');
shuffle($fer);
foreach ($fer as $mychrs)
echo $mychrs." ";
?>
每次都會(huì)顯示不同的排序組合
5,PHP數(shù)組按原順序反向排序
PHP中可使用array_reverse()函數(shù)將數(shù)組元素按原順序反向排序。比如:
復(fù)制代碼 代碼如下:
<?php
$fer=array('cnbruce','cnrose','cnjames','cnanne');
foreach ($fer as $mychrs)
echo $mychrs." ";
$fer=array_reverse($fer);
echo "<br />--按原順序反向--<br />";
foreach ($fer as $mychrs)
echo $mychrs." ";
?>
cnbruce cnrose cnjames cnanne
--按原順序反向--
cnanne cnjames cnrose cnbruce
注意這里的 $fer=array_reverse($fer); 在此之前的任何排序函數(shù)均只是聲明引用,并沒(méi)有對(duì)原有數(shù)組進(jìn)行重新定義,但當(dāng)我調(diào)試該函數(shù)時(shí)則需要重新定義。這是因?yàn)閍rray_reverse()是返回原數(shù)組修改后的副本,如果不需要原有數(shù)組,可對(duì)原數(shù)組重新定義達(dá)到覆蓋的目的,否則就另外定義數(shù)組保存副本,比如:$fer_bak=array_reverse($fer);
感謝各位的閱讀,以上就是“PHP中數(shù)組元素升序、降序以及重新排序的函數(shù)用法”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)PHP中數(shù)組元素升序、降序以及重新排序的函數(shù)用法這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
網(wǎng)站標(biāo)題:PHP中數(shù)組元素升序、降序以及重新排序的函數(shù)用法-創(chuàng)新互聯(lián)
本文鏈接:http://www.rwnh.cn/article32/ceidsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、App開(kāi)發(fā)、企業(yè)建站、網(wǎng)站設(shè)計(jì)、商城網(wǎng)站、全網(wǎng)營(yíng)銷(xiāo)推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容