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

以上數(shù)組的元素會(huì)自動(dòng)分配鍵值,從 0 開(kāi)始:
<?php
// 二維數(shù)組:
$cars = array
(
array("Volvo",100,96),
array("BMW",60,59),
array("Toyota",110,100)
);
?>
以下實(shí)例,我們創(chuàng)建了指定鍵(關(guān)聯(lián)數(shù)組)的二維數(shù)組:
<?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>"); // 格式化輸出數(shù)組
print_r($sites);
print("</pre>");
?>
三維數(shù)組
三維數(shù)組是在二維數(shù)組的基礎(chǔ)上再嵌套一層數(shù)組,格式如下:
array ( array ( array (elements...), array (elements...), ... ), array ( array (elements...), array (elements...), ... ), ... )

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