PHP 數組排序方法總結

sort:本函數爲 array 中的單元賦予新的鍵名。這將刪除原有的鍵名而不只是從新排序。 
rsort:本函數對數組進行逆向排序(最高到最低)。 刪除原有的鍵名而不只是從新排序。 
asort:對數組進行排序並保持索引關係 
arsort:對數組進行逆向排序並保持索引關係 

ksort:對數組按照鍵名排序,保留鍵名到數據的關聯 
krsort:對數組按照鍵名逆向排序,保留鍵名到數據的關聯 

natsort:對字母數字字符串進行排序並保持原有鍵/值的關聯 
natcasesort:同natsort排序算法,但不區分大小寫字母排序 


PHP 數組排序(sort) 
數字索引數組排序: 
函數:sort(array, [sort type]) 
說明:sort()函數按升序對指定數組(第一個參數)進行排序。 
sort函數第二參數做用爲指定排序類型,是可選參數,可能的值爲: 
SORT_REGULAR: 默認值,不改變類型進行排序; 
SORT_NUMERIC: 把值做爲數字進行排序; 
SORT_STRING: 把值做爲字符串進行排序; 
如數組中有4和」37″,按數字排序,4小於」37″;按字符串排序,4大於」37″; 

php

複製代碼代碼以下:

<?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 />"; 
?> 


輸出結果: 

-5 0 3 4 37 100 
-5 0 100 3 37 4 

降序排序:rsort(array, [sort type]) 
參數用法與sort函數相同。 

關聯數組排序: 
函數:asort(array, [sort type]) 
說明:根據關聯數組的元素值進行升序排序。參數使用見上面的sort函數。 

函數:ksort(array, [sort type]) 
說明:根據關聯數組的關鍵字進行升序排序。參數使用見上面的sort函數。 


算法

複製代碼代碼以下:

<?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 />"; 

?> 


輸出結果: 

value sort 
good : bad 
boy : girl 
right : wrong 

key sort 
boy : girl 
good : bad 
right : wrong 
降序排序: 
arsort(array, [sort type]) 與 asort對應 
krsort(array, [sort type]) 與 ksort對應 


快速建立數組的函數range() 

好比range()函數能夠快速建立從1到9的數字數組: 數組

複製代碼代碼以下:

<?php 
$numbers=range(1,9); 
echo $numbers[1]; 
?> 


固然,使用range(9,1)則建立了9到1的數字數組。同時,range()還能夠建立從a到z 的字符數組: 函數

複製代碼代碼以下:

<?php 
$numbers=range(a,z); 
foreach ($numbers as $mychrs) 
echo $mychrs." "; 
?> 



使用字符數組時注意大小寫,好比range(A,z)和range(a,Z)是不同的。range()函數還具備第三個參數,該參數的做用是設定步長,好比range(1,9,3)建立的數組元素是:一、四、7。常見PHP數組排序通常數組中的各元素均以字符或數字表現的,因此可對數組元素進行升序排列,該功能函數爲sort()。好比: spa

複製代碼代碼以下:

<?php 
$people=array('name','sex','nation','birth'); 
foreach ($people as $mychrs) 
echo $mychrs." "; 
sort($people); 
echo "<br />---排序後---<br />"; 
foreach ($people as $mychrs) 
echo $mychrs." "; 
?> 


升序排序後的數組元素顯示爲 birth name nation sex,固然,sort()函數是區分字母大小寫的(字母從大到小的順序是:A…Z…a…z) 

Sort()函數還具備第二參數,用來講明PHP數組排序升序的規則是用來比較數字仍是字符串的。好比: code

複製代碼代碼以下:

<?php 
echo "---按數字升序排序---<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用來聲明按數字或字符的升序排列。若是按照數字升序排列是:3,26;但若是按照字符升序排列則是:26,3了。PHP中除了升序函數之外,還有降序或稱反向排列的函數,就是rsort()函數,好比:$num1=range(1,9);rsort($num1);這裏其實就至關於range(9,1)。排序

相關文章
相關標籤/搜索