標題:
4-2-3 陣列排序
[打印本頁]
作者:
小誌
時間:
2011-4-18 19:54
標題:
4-2-3 陣列排序
4-2-3 陣列排序
要對陣列元素的資料加以順序排列,不需要我們自己轉寫程式敘述,直接使用PHP所提供的函數即可:
sort()函數
sort()函數可根據字母順序或數值大小加以排序:(ex04_15.php)
<?
$X[0] ="tw";
$X[1] ="com";
$X[2] ="net";
$X[3] ="gov";
sort($X);
foreach ($X as $key=>$value)
{
echo "元素 $key;元素值 $value <br>";
}
?>
複製代碼
當上例執行後網頁出現如下:
[attach]5494[/attach]
圖4-13 ex04_15.php。
作者:
小誌
時間:
2011-4-18 19:57
asort()函數
sort()函數對陣列元素排序後,則陣列中的元素註標索引將會被重新編排,如下例:(ex04_16.php)
<?
$X[252] ="com";
$X[20] ="gov";
$X[100] ="net";
$X[] ="tw";
sort($X);
foreach ($X as $key=>$value)
{
echo "元素 $key;元素值 $value <br>";
}
?>
複製代碼
當上例陣列被sort()函數排序元素後,陣列元數的註標與元素值的關係如下圖所示:
[attach]5495[/attach]
圖4-14 ex04_16.php。
倘若,要陣列進行元素排序,又要保留元素原有的註標索引,則必須使用asort()函數進行排序:(ex04_17.php)
<?
$X=array("charles" => "小誌",
"connie" => "無尾熊",
"chiey" => "小魏",
"egge" => "小魚");
asort($X);
foreach ($X as $key=>$value)
{
echo "元素 $key;元素值 $value <br>";
}
?>
複製代碼
上例結果如下圖,元素已經加以排序,但也保留了元素原來的註標索引值:
[attach]5496[/attach]
圖4-15 ex04_17.php。
作者:
小誌
時間:
2011-4-18 19:59
rsort()函數與arsort()函數
sort()函數是對陣列元素正向排序,而rsort()函數則對陣列元素進行逆向排序,現在以與範例ex04_16.php相同的陣列使用rsort()排序:(ex04_18.php)
<?
$X[252] ="com";
$X[20] ="gov";
$X[100] ="net";
$X[] ="tw";
rsort($X);
foreach ($X as $key=>$value)
{
echo "元素 $key;元素值 $value <br>";
}
?>
複製代碼
由上例中您會發現,rsort()函數會對陣列元素逆向排序,同時也將元素的原始註標索引重新編排了!
[attach]5497[/attach]
圖4-16 ex04_18.php。
若要對陣列元素逆向排序,但不重新編排元素的原始註標索引,則必須使用arsort()函數來排序:(ex04_19.php)
<?
$X[252] ="com";
$X[20] ="gov";
$X[100] ="net";
$X[] ="tw";
arsort($X);
foreach ($X as $key=>$value)
{
echo "元素 $key;元素值 $value <br>";
}
?>
複製代碼
[attach]5498[/attach]
圖4-17 ex04_19.php。
作者:
小誌
時間:
2011-4-18 20:01
ksort()函數
之前介紹的sort()、asort()、rsort()、arsort()函數,不管是正向或逆向都是對陣列元素排序,而ksort()函數則對陣列「註標」排序,現在以與範例ex04_17.php相同的陣列使用ksort()排序:(ex04_20.php)
<?
$X=array("charles" => "小誌",
"connie" => "無尾熊",
"chiey" => "小魏",
"egge" => "小魚");
ksort($X);
foreach ($X as $key=>$value)
{
echo "元素 $key;元素值 $value <br>";
}
?>
複製代碼
[attach]5499[/attach]
圖4-18 ex04_20.php。
作者:
qoorocky
時間:
2013-7-7 13:33
圖4-13放錯了?
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)