PHP 數(shù)組
PHP 數(shù)組
數(shù)組提供了一種快速,方便地管理一組相關(guān)數(shù)據(jù)的方法,是php程序設(shè)計(jì)中的重要內(nèi)容。
php中將數(shù)組分為一維數(shù)組,二維數(shù)組和多維數(shù)組,但無論是一維還是多維,可以統(tǒng)一將數(shù)組分為數(shù)字索引數(shù)組和關(guān)聯(lián)數(shù)組兩種。
數(shù)組能夠在單個(gè)變量中存儲(chǔ)多個(gè)值:
實(shí)例
<?php $phones=array("Iphone","Nokia","Oppo"); echo "I like " . $phones[0] . ", " . $phones[1] . " and " . $phones[2] . "."; ?>
數(shù)組是什么?
數(shù)組是一個(gè)能在單個(gè)變量中存儲(chǔ)多個(gè)值的特殊變量。
如果您有一個(gè)項(xiàng)目清單(例如:手機(jī)名字的清單),將其存儲(chǔ)到單個(gè)變量中,如下所示:
$phones1
="Iphone";
$phones2
="Nokia";
$phones3
="Oppo";
然而,如果您想要遍歷數(shù)組并找出特定的一個(gè)呢?如果數(shù)組的項(xiàng)不只 3 個(gè)而是 300 個(gè)呢?
解決辦法是創(chuàng)建一個(gè)數(shù)組!
數(shù)組可以在單個(gè)變量中存儲(chǔ)多個(gè)值,并且您可以根據(jù)鍵訪問其中的值。
在 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ù)組(索引數(shù)組)
這里有兩種創(chuàng)建數(shù)值數(shù)組的方法:
自動(dòng)分配 ID 鍵(ID 鍵總是從 0 開始):
$phones
=array("Iphone","Nokia","Oppo");
人工分配 ID 鍵:
$phones[0]
="Iphone";
$phones[1]
="Nokia";
$phones[2]
="Oppo";
下面的實(shí)例創(chuàng)建一個(gè)名為 $cars 的數(shù)值數(shù)組,并給數(shù)組分配三個(gè)元素,然后打印一段包含數(shù)組值的文本:
實(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ù)量):
實(shí)例
<?php $cars=array("Volvo","BMW","Toyota"); echo count($cars); ?>
語(yǔ)法:
int count ( mixed $var [, int $mode = COUNT_NORMAL ] )
echo count($names);
遍歷數(shù)值數(shù)組
遍歷并打印數(shù)值數(shù)組中的所有值,您可以使用 for 循環(huán),如下所示:
實(shí)例
<?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ù)組。
除了數(shù)組索引數(shù)組,PHP還有一種關(guān)聯(lián)數(shù)組,在其它計(jì)算機(jī)語(yǔ)言中,一般叫做hash或者map。
$info = [
'name' => 'andy',
'age' => 18,
'gender' => 'male'
];
關(guān)聯(lián)數(shù)組使用數(shù)字下標(biāo)是無法獲取數(shù)據(jù)的,譬如$info[0]的值是空,我們需要使用鍵作為下標(biāo)$info[‘a(chǎn)ge’]的值是18 。
這里有兩種創(chuàng)建關(guān)聯(lián)數(shù)組的方法:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
or:
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
隨后可以在腳本中使用指定的鍵:
實(shí)例
<?php $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); echo "Peter is " . $age['Peter'] . " years old."; ?>
遍歷關(guān)聯(lián)數(shù)組
遍歷并打印關(guān)聯(lián)數(shù)組中的所有值,您可以使用 foreach 循環(huán),如下所示:
實(shí)例
<?php $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); foreach($age as $x=>$x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "<br>"; } ?>
多維數(shù)組
多維數(shù)組 將在 PHP 高級(jí)教程部分做詳細(xì)介紹。
打印數(shù)組
我們可以使用echo去打印一個(gè)字符串、整型、浮點(diǎn)型,但是我們不能用它來打印數(shù)組
數(shù)組是由一系列的元素組成的,如果要打印,那么打印的應(yīng)該是每個(gè)元素,而不是整個(gè)數(shù)組
我們一般使用print_r來打印數(shù)組(當(dāng)然用var_dump也可以,但是結(jié)構(gòu)上不清晰)
bool print_r ( mixed $expression [, bool $return ] )
print_r($names);
當(dāng)?shù)诙€(gè)參數(shù)為true時(shí),print_r不會(huì)直接打印數(shù)組,而是將打印的內(nèi)容作為字符串返回
echo print_r($names, true);
獲取數(shù)組元素
索引數(shù)組中的每個(gè)元素都有一個(gè)自增長(zhǎng)的序號(hào),默認(rèn)情況下,0表示第一個(gè)元素,對(duì)于
$names = ['andy', 'tom', 'jack'];
我們可以使用數(shù)組變量名后面加方括號(hào)的方式來獲取數(shù)組中的元素,譬如,用$names[0]來獲取到andy,同理$names[2]代表jack
數(shù)組的維度:一維
$arr = ['王剛', '張麗', '劉偉'];
假設(shè)數(shù)組變量名為$arr,獲取“張麗”的方式:$arr[1]
多維數(shù)組
超過一維的數(shù)組,我們都可以稱為多維數(shù)組
我們需要明白,數(shù)組不一定就是一個(gè)下標(biāo)和值的簡(jiǎn)單列表,實(shí)際上,數(shù)組中的每個(gè)元素還可以是另一個(gè)數(shù)組
因此如果一維數(shù)組中的數(shù)組元素又是一個(gè)數(shù)組,那么它就成為了二維數(shù)組
數(shù)組的維度:二維
$arr = [
['王剛', '張麗', '劉偉'],
['孫麗', '李強(qiáng)', '李國(guó)慶'],
['趙園園', '丁麗麗']
];
echo count($arr);
echo count($arr, true);
獲取“李強(qiáng)”的方式:$arr[1][1]
數(shù)組的維度:三維
$arr = [
[
['王剛', '張麗', '劉偉'],
['孫麗', '李強(qiáng)', '李國(guó)慶'],
['趙園園', '丁麗麗']
],
[
['宋紅', '馬小麗'],
['張穎', '劉軍', '黃濤'],
['杜磊', '朱婷婷']
],
];
echo count($arr);
echo count($arr, true);
獲取“劉軍”的方式:$arr[1][1][1]
完整的 PHP Array 參考手冊(cè)
如需查看所有數(shù)組函數(shù)的完整參考手冊(cè),請(qǐng)?jiān)L問我們的 PHP Array 參考手冊(cè)。
該參考手冊(cè)提供了每個(gè)函數(shù)的簡(jiǎn)要描述和應(yīng)用實(shí)例!