1、數字索引數組
1.1、數字索引數組的初始化
要建立一個數組,可以使用array(),如下所示:
$products = array('Tires', 'Oil', 'Spark Plugs');
如果需要按升序排列的數字儲存在一個數組中,可以使用range()函數自動建立這個數組。如下建立一個1~10的數字數組:
$numbers = range(1, 10);
range()函數具有第三個選擇性參數,允許設定值之間的步幅。這個函數同時也可以對字元進行操作。
1.2、訪問數組的內容1.3、使用逐一查看數組
由於數組使用有序的數字作為索引,所以使用一個for迴圈就可以很容易顯示數組的內容:
for($i=0; $i<3; $i++)
{
echo $products[$i];
}
也可以使用foreach迴圈,這個迴圈是專門為數組設計的,如下所示:
foreach($products as $current)
{
echo $current." ";
}
2、使用不同索引的數組
2.1、初始化關聯陣列
如下所示的代碼可以建立一個以產品名稱作為關鍵字、以價格作為值的關聯陣列:
$prices = array('Tires'=>100, 'Oil'=>10, 'Spark Plugs'=>4);
2.2、訪問數組元素
同樣,可以使用變數名稱和關鍵字訪問數組的內容。
2.3、使用迴圈語句
因為關聯陣列的索引不是數字,因此無法在for迴圈語句中使用一個簡單的計數器對數組進行操作。但是可以使用foreach()迴圈或list()和each()結構。
當使用foreach()迴圈語句對關聯陣列進行操作時,foreach迴圈具有不同的結構。可以在前面的例子中使用這個迴圈語句,也可以按如下方式使用關鍵字:
foreach($prices as $key => $value)
{
echo $key . " - " . $value. "<br />";
}
如下所示的代碼將使用each()結構列印$prices數組的內容:
while($element = each($prices))
{
echo $element['key'];
echo "-";
echo $element['value'];
echo "<br />";
}
其中each()函數將返回數組的當前元素,並將下一個元素作為當前元素。
另外,還有一中更進階和常見的方式來完成相同的操作。函數list()可以用來將一個數組分解為一系列的值。如下所示:
while(list($product, $price) = each($prices))
{
echo "$product - $price<br />";
}
3、數組排序
3.1、使用sort()函數
按照字母或者數位升序進行排序。注意該函數是區分大小寫。
3.2、使用asort()函數和ksort()函數對關聯陣列排序
函數asort()根據數組的每個元素值進行排序。如果是要按照關鍵字排序而不是按值排序,就可以使用ksort()函數。
3.3、反向排序
實現反向排序的函數是rsort()、arsort()和krsort()。