在PHP數組學習摘錄部分了解到最基本的PHP數組的建立和數組元素的顯示。需要深入學習下PHP數組的相關操作。首先接觸的就是數組元素的升序、降序的排序問題。
1、快速創建數組的函數range()
比如range()函數可以快速創建從1到9的數字數組:
| 以下為引用的內容: <?php |
當然,使用range(9,1)則創建了9到1的數字數組。同時,range()還可以創建從a到z 的字符數組:
| 以下為引用的內容: <?php |
使用字符數組時注意大小寫,比如range(A,z)和range(a,Z)是不一樣的。
range()函數還具有第三個參數,該參數的作用是設定步長,比如range(1,9,3)創建的數組元素是:1、4、7
2、PHP中常規數組的排序
一般數組中的各元素均以字符或數字表現的,所以可對數組元素進行升序排列,該功能函數為sort()。比如:
| 以下為引用的內容: <?php |
升序排序后的數組元素顯示為 birth name nation sex,當然,sort()函數是區分字母大小寫的(字母從大到小的順序是:A…Z…a…z)
Sort()函數還具有第二參數,用來說明升序的規則是用來比較數字還是字符串的。比如:
| 以下為引用的內容: <?php echo "<br />---按字符升序排序---<br />"; |
SORT_NUMERIC和SORT_STRING用來聲明按數字或字符的升序排列。如果按照數字升序排列是:3,26;但如果按照字符升序排列則是:26,3了。
PHP中除了升序函數以外,還有降序或稱反向排列的函數,就是rsort()函數,比如:
| 以下為引用的內容: $num1=range(1,9); |
這里其實就相當于range(9,1)
3、PHP中關聯數組的排序
PHP除了支持數字索引數組以外,還支持相關數組。比如如下數組就是一個相關(關聯)數組:
| 以下為引用的內容: $peoples=array('xm'=>'name','xb'=>'sex','mz'=>'nation','cs'=>'birth'); |
使用sort($peoples)默認即是按照元素定義值的升序排序,在關聯數組中可使用asort()函數表示,關聯數組中最主要的則是可按照關鍵字(如xm、xb、mz等)的升序排序,該方法是用函數ksort()函數。
| 以下為引用的內容: <?php echo "<br />--按元素值升序排列--<br />"; echo "<br />--按關鍵字升序排列--<br />"; |
和常規數組擁有sort()升序函數的反向排序rsort()降序函數相對應的,關聯數組也有對應的降序函數:asort()函數和arsort()函數、ksort()函數和krsort()函數。
記憶:原型函數是sort(),其中a、k表示關聯數組相關必須前置,反向排序使用r修飾。
4、PHP數組元素隨機排序
PHP中使用shuffle()函數將數組元素進行隨機的重新排序,比如:
| 以下為引用的內容: <?php foreach ($fer as $mychrs) |
每次都會顯示不同的排序組合
5、PHP數組按原順序反向排序
PHP中可使用array_reverse()函數將數組元素按原順序反向排序。比如:
| 以下為引用的內容: <?php $fer=array_reverse($fer); cnbruce cnrose cnjames cnanne |
注意這里的 $fer=array_reverse($fer); 在此之前的任何排序函數均只是聲明引用,并沒有對原有數組進行重新定義,但當我調試該函數時則需要重新定義。這是因為array_reverse()是返回原數組修改后的副本,如果不需要原有數組,可對原數組重新定義達到覆蓋的目的,否則就另外定義數組保存副本,比如:$fer_bak=array_reverse($fer);
新聞熱點
疑難解答