PHP 數(shù)組
PHP?陣列
陣列提供了一個(gè)快速,方便地管理一組相關(guān)資料的方法,是php程式設(shè)計(jì)中的重要內(nèi)容。
php中將數(shù)組分為一維數(shù)組,二維數(shù)組和多維數(shù)組,但無(wú)論是一維還是多維,可以統(tǒng)一將數(shù)組分為數(shù)字索引數(shù)組和關(guān)聯(lián)數(shù)組兩種。
陣列能夠在單一變數(shù)中儲(chǔ)存多個(gè)值:
實(shí)例
<?php $phones=array("Iphone","Nokia","Oppo"); echo "I like " . $phones[0] . ", " . $phones[1] . " and " . $phones[2] . "."; ?>
陣列是什麼?
陣列是一個(gè)能在單一變數(shù)中儲(chǔ)存多個(gè)值的特殊變數(shù)。
如果您有一個(gè)項(xiàng)目清單(例如:手機(jī)名字的清單),將其儲(chǔ)存到單一變數(shù)中,如下所示:
$phones1
="Iphone";
$phones2
="Nokia";
$phones3
# ="Oppo";
然而,如果您想要遍歷數(shù)組並找出特定的一個(gè)呢?如果陣列的項(xiàng)不只 3 個(gè)而是 300 個(gè)呢?
解決辦法是建立一個(gè)陣列!
陣列可以在單一變數(shù)中儲(chǔ)存多個(gè)值,並且您可以根據(jù)鍵存取其中的值。
在PHP 中建立陣列
#在PHP 中,array() 函數(shù)用於建立陣列:
array();
在PHP 中,有三種類型的陣列:
·???????? 數(shù)值陣列?- 帶有數(shù)字ID 鍵的陣列
# ·???????? 關(guān)聯(lián)陣列?- 指定的鍵的陣列,每個(gè)鍵關(guān)聯(lián)一個(gè)值
·????????#PHP 數(shù)值數(shù)組(索引數(shù)組)
###這裡有兩種建立數(shù)值數(shù)組的方法:######自動(dòng)分配ID 鍵(ID 鍵總是從0 開(kāi)始):####### $phones###=array("Iphone","Nokia","Oppo");######人工分配ID 鍵:######$phones[0]#######= "Iphone";### $phones[1]######="Nokia";### $phones[2]######="Oppo";######## #######下面的實(shí)例建立一個(gè)名為$cars 的數(shù)值數(shù)組,並給數(shù)組分配三個(gè)元素,然後列印一段包含數(shù)組值的文字:######實(shí)例###<?php $cars=array("Volvo","BMW","Toyota"); echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . "."; ?>## ################ 取得陣列的長(zhǎng)度- count() 函數(shù)############count() 函數(shù)用來(lái)傳回陣列的長(zhǎng)度(元素的數(shù)量):######實(shí)例###
<?php $cars=array("Volvo","BMW","Toyota"); echo count($cars); ?>############?語(yǔ)法:######? int?count?(?mixed?$var?[,?int?$mode?= COUNT_NORMAL?$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)陣列
關(guān)聯(lián)陣列是使用您指派給陣列的指定的鍵的陣列。
除了數(shù)組索引數(shù)組,PHP還有一個(gè)關(guān)聯(lián)數(shù)組,在其它電腦語(yǔ)言中,一般叫做hash或map。
$info?=?[
? ? 'name'?=>?'andy',?
? ? 'age'?=>?18,?
? ? 'gender』#?=>?18,?
? ? 'gender'#?=>?18,?
??
這裡有兩種建立關(guān)聯(lián)陣列的方法:$age=array("Peter"=>"35"," Ben"=>"37","Joe"=>"43");or:
$age['Peter']="35";
$ age['Ben']="37";
<?php $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); echo "Peter is " . $age['Peter'] . " years old."; ?>
遍歷關(guān)聯(lián)陣列
#遍歷並列印關(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ìn)階教程部分做詳細(xì)介紹。列印陣列
#我們可以使用echo去列印一個(gè)字串、整數(shù)、浮點(diǎn)型,但是我們不能用它來(lái)列印陣列陣列是由一系列的元素組成的,如果要列印,那麼列印的應(yīng)該是每個(gè)元素,而不是整個(gè)陣列我們一般使用print_r來(lái)列印陣列(當(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);?
取得陣列元素
#索引陣列中的每個(gè)元素都有一個(gè)自增長(zhǎng)的序號(hào),預(yù)設(shè)情況下,0表示第一個(gè)元素,對(duì)於$names?=?['andy',?'tom',?'jack'];我們可以使用陣列變數(shù)名稱後面加方括號(hào)的方式來(lái)取得陣列中的元素,譬如,用$names[0]來(lái)獲得到andy,同理$names[2]代表jack?陣列的維度:一維 #$arr?=?['王剛',?'張麗',?'劉偉'];假設(shè)陣列變數(shù)名為$arr,取得「張麗」的方式:$arr[1]?多維數(shù)組超過(guò)一維的數(shù)組,我們都可以稱為多維數(shù)組###
我們需要明白,數(shù)組不一定就是一個(gè)下標(biāo)和值的簡(jiǎn)單列表,實(shí)際上,數(shù)組中的每個(gè)元素還可以是另一個(gè)數(shù)組
因此如果一維數(shù)組中的數(shù)組元素又是一個(gè)數(shù)組,那麼它就變成了一個(gè)二維數(shù)組
?
數(shù)組的維度:二維
$arr?=?[
? ? ['王剛',?'張麗',?'劉偉'],
? ? ['孫麗',?'李強(qiáng)',?'李國(guó)慶日'],
? ? ['趙園園',?'丁麗麗']
];
echo?count($arr);
$arr?=?[
? ? [
? ? ? ? ['王剛',?'張麗',?'劉偉'],##?'李強(qiáng)國(guó) ? ? 生 ['孫麗',?, '],
? ? ? ? ['趙園地',?'丁麗麗']
? ? ],
? ? [
# ? ? ? ? ['宋紅麗』, c'馬小麗'],#, ?',?'黃濤'],
? ? ? ? ['杜磊',?'朱婷婷']
? ? ],
];
# echo?count($$($ arr,?true);
完整的PHP Array 參考手冊(cè)
如需查看所有陣列函數(shù)的完整參考手冊(cè),請(qǐng)?jiān)煸L我們的?PHP Array 參考手冊(cè)。 此參考手冊(cè)提供了每個(gè)函數(shù)的簡(jiǎn)要描述和應(yīng)用實(shí)例!