您現在的位置是:首頁 >php教程 >php教程九 數組|排序網站首頁php教程
php教程九 數組|排序
PHP 數組
數組能夠在單個變量中存儲多個值:
<?php
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
數組是什么?
數組是一個能在單個變量中存儲多個值的特殊變量。
如果您有一個項目清單(例如:車名字的清單),將其存儲到單個變量中,如下所示:
$cars1="Volvo";
$cars2="BMW";
$cars3="Toyota";
然而,如果您想要遍歷數組并找出特定的一個呢?如果數組的項不只 3 個而是 300 個呢?
解決辦法是創建一個數組!
數組可以在單個變量中存儲多個值,并且您可以根據鍵訪問其中的值。
在 PHP 中創建數組
在 PHP 中,array() 函數用于創建數組:
array();
在 PHP 中,有三種類型的數組:數值數組 - 帶有數字 ID 鍵的數組
關聯數組 - 帶有指定的鍵的數組,每個鍵關聯一個值
多維數組 - 包含一個或多個數組的數組
PHP 數值數組
這里有兩種創建數值數組的方法:
自動分配 ID 鍵(ID 鍵總是從 0 開始):
$cars=array("Volvo","BMW","Toyota");
人工分配 ID 鍵:
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="Toyota";
下面的實例創建一個名為 $cars 的數值數組,并給數組分配三個元素,然后打印一段包含數組值的文本:
<?php
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
數組的長度 - count() 函數
count() 函數用于返回數組的長度(元素的數量):
<?php
$cars=array("Volvo","BMW","Toyota");
echo count($cars);
?>
遍歷數值數組
遍歷并打印數值數組中的所有值,您可以使用 for 循環,如下所示:
<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++)
{
echo $cars[$x];
echo "<br>";
}
?>
PHP 關聯數組
關聯數組是使用您分配給數組的指定的鍵的數組。
這里有兩種創建關聯數組的方法:
$age=array("Peter"=>"35","Ben"=>"36","Joe"=>"37");
$age['Peter']="35";
$age['Ben']="36";
$age['Joe']="37";
腳本中使用指定的鍵:
<?php
$age=array("Peter"=>"35","Ben"=>"36","Joe"=>"37");
echo "Peter is " . $age['Peter'] . " years old.";
?>
遍歷關聯數組
遍歷并打印關聯數組中的所有值,您可以使用 foreach 循環,如下所示:
<?php
$age=array("Peter"=>"35","Ben"=>"36","Joe"=>"37");
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
多維數組
多維數組是包含一個或多個數組的數組。
在多維數組中,主數組中的每一個元素也可以是一個數組,子數組中的每一個元素也可以是一個數組。
一個數組中的值可以是另一個數組,另一個數組的值也可以是一個數組,依照這種方式,我們可以創建二維或者三維數組。
二維數組語法格式:
array ( array (elements...), array (elements...), ... )

以上數組的元素會自動分配鍵值,從 0 開始:
<?php
// 二維數組:
$cars = array
(
array("Volvo",100,96),
array("BMW",60,59),
array("Toyota",110,100)
);
?>
以下實例,我們創建了指定鍵(關聯數組)的二維數組:
<?php
$sites = array
(
"dyf"=>array
(
"dyf",
"http://www.xxx.com"
),
"google"=>array
(
"Google 搜索",
"http://www.google.com"
),
"taobao"=>array
(
"淘寶",
"http://www.taobao.com"
)
);
print("<pre>"); // 格式化輸出數組
print_r($sites);
print("</pre>");
?>
三維數組
三維數組是在二維數組的基礎上再嵌套一層數組,格式如下:
array ( array ( array (elements...), array (elements...), ... ), array ( array (elements...), array (elements...), ... ), ... )

<?php
// 創建三維數組
$myarray = array(
array(
array(1, 2),
array(3, 4),
),
array(
array(5, 6),
array(7, 8),
),
);
// 輸出數組信息
print_r($myarray);
?>
上面的數組將輸出如下:
Array ( [0] => Array ( [0] => Array ( [0] => 1 [1] => 2 ) [1] => Array ( [0] => 3 [1] => 4 ) ) [1] => Array ( [0] => Array ( [0] => 5 [1] => 6 ) [1] => Array ( [0] => 7 [1] => 8 ) ) )
數組排序
數組中的元素可以按字母或數字順序進行降序或升序排列。
PHP - 數組排序函數
sort() - 對數組進行升序排列
rsort() - 對數組進行降序排列
asort() - 根據關聯數組的值,對數組進行升序排列
ksort() - 根據關聯數組的鍵,對數組進行升序排列
arsort() - 根據關聯數組的值,對數組進行降序排列
krsort() - 根據關聯數組的鍵,對數組進行降序排列
sort() - 對數組進行升序排列
下面的實例將 $cars 數組中的元素按照字母升序排列:
<?php
$cars=array("Volvo","BMW","Toyota");
sort($cars);
?>
下面的實例將 $numbers 數組中的元素按照數字升序排列:
<?php
$numbers=array(4,6,2,22,11);
sort($numbers);
?>
rsort() - 對數組進行降序排列
下面的實例將 $cars 數組中的元素按照字母降序排列:
<?php
$cars=array("Volvo","BMW","Toyota");
rsort($cars);
?>
下面的實例將 $numbers 數組中的元素按照數字降序排列:
<?php
$numbers=array(4,6,2,22,11);
rsort($numbers);
?>
asort() - 根據數組的值,對數組進行升序排列
下面的實例根據數組的值,對關聯數組進行升序排列:
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
asort($age);
?>
ksort() - 根據數組的鍵,對數組進行升序排列
下面的實例根據數組的鍵,對關聯數組進行升序排列:
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
ksort($age);
?>
arsort() - 根據數組的值,對數組進行降序排列
下面的實例根據數組的值,對關聯數組進行降序排列:
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
arsort($age);
?>
krsort() - 根據數組的鍵,對數組進行降序排列
下面的實例根據數組的鍵,對關聯數組進行降序排列:
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
krsort($age);
?>