**數組能夠在單獨的變量名中存儲一個或多個值**。
## 實例
數組在單個變量中存儲多個值:
~~~
<?php
$cars=array("Volvo","BMW","SAAB");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
~~~
## 什么是數組?
數組是特殊的變量,它可以同時保存一個以上的值。
如果您有一個項目列表(例如汽車品牌列表),在單個變量中存儲這些品牌名稱是這樣的:
~~~
$cars1="Volvo";
$cars2="BMW";
$cars3="SAAB";
~~~
不過,假如您希望對變量進行遍歷并找出特定的那個值?或者如果您需要存儲 300 個汽車品牌,而不是 3 個呢?
解決方法是創建數組!
數組能夠在單一變量名中存儲許多值,并且您能夠通過引用下標號來訪問某個值。
## 在 PHP 中創建數組
在 PHP 中, array() 函數用于創建數組:
`array();`
在 PHP 中,有三種數組類型:
* 索引數組 - 帶有數字索引的數組
* 關聯數組 - 帶有指定鍵的數組
* 多維數組 - 包含一個或多個數組的數組
## PHP 索引數組
有兩種創建索引數組的方法:
索引是自動分配的(索引從 0 開始):
`$cars=array("Volvo","BMW","SAAB");`
或者也可以手動分配索引:
~~~
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="SAAB";
~~~
下面的例子創建名為 $cars 的索引數組,為其分配三個元素,然后輸出包含數組值的一段文本:
~~~
<?php
$cars=array("Volvo","BMW","SAAB");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
~~~
### 獲得數組的長度 - count() 函數
count() 函數用于返回數組的長度(元素數):
~~~
<?php
$cars=array("Volvo","BMW","SAAB");
echo count($cars);
?>
~~~
### 遍歷索引數組
如需遍歷并輸出索引數組的所有值,您可以使用 for 循環,就像這樣:
~~~
<?php
$cars=array("Volvo","BMW","SAAB");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++) {
echo $cars[$x];
echo "<br>";
}
?>
~~~
## PHP 關聯數組
關聯數組是使用您分配給數組的指定鍵的數組。
有兩種創建關聯數組的方法:
~~~
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
~~~
或者:
~~~
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
~~~
隨后可以在腳本中使用指定鍵:
~~~
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>
~~~
### 遍歷關聯數組
如需遍歷并輸出關聯數組的所有值,您可以使用 foreach 循環,就像這樣:
~~~
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
foreach($age as $x=>$x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
~~~
## 多維數組
我們將在 PHP 高級教程中講解多維數組。
## 完整的 PHP 數組參考手冊
如需完整的數組函數參考手冊,請訪問我們的 [PHP 數組參考手冊](http://www.w3school.com.cn/php/php_ref_array.asp)。
該參考手冊包含每個函數的簡要描述、使用示例。
**數組中的元素能夠以字母或數字順序進行升序或降序排序。**
### PHP - 數組的排序函數
在本節中,我們將學習如下 PHP 數組排序函數:
* sort() - 以升序對數組排序
* rsort() - 以降序對數組排序
* asort() - 根據值,以升序對關聯數組進行排序
* ksort() - 根據鍵,以升序對關聯數組進行排序
* arsort() - 根據值,以降序對關聯數組進行排序
* krsort() - 根據鍵,以降序對關聯數組進行排序
#### 對數組進行升序排序 - sort()
下面的例子按照字母升序對數組 $cars 中的元素進行排序:
~~~
<?php
$cars=array("Volvo","BMW","SAAB");
sort($cars);
?>
~~~

下面的例子按照數字升序對數組 $numbers 中的元素進行排序:
~~~
<?php
$numbers=array(3,5,1,22,11);
sort($numbers);
?>
~~~

#### 對數組進行降序排序 - rsort()
下面的例子按照字母降序對數組 $cars 中的元素進行排序:
~~~
<?php
$cars=array("Volvo","BMW","SAAB");
rsort($cars);
?>
~~~

下面的例子按照數字降序對數組 $numbers 中的元素進行排序:
~~~
<?php
$numbers=array(3,5,1,22,11);
rsort($numbers);
?>
~~~

#### 根據值對數組進行升序排序 - asort()
下面的例子根據值對關聯數組進行升序排序:
~~~
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
asort($age);
?>
~~~

#### 根據鍵對數組進行升序排序 - ksort()
下面的例子根據鍵對關聯數組進行升序排序:
~~~
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
ksort($age);
?>
~~~

#### 根據值對數組進行降序排序 - arsort()
下面的例子根據值對關聯數組進行降序排序:
~~~
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
arsort($age);
?>
~~~

#### 根據鍵對數組進行降序排序 - krsort()
下面的例子根據鍵對關聯數組進行降序排序:
~~~
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
krsort($age);
?>
~~~
