PHP數(shù)組的分析
數(shù)組的本質(zhì)是管理和操作一組變量,數(shù)組中可以存儲任意長度的數(shù)據(jù),也可以存儲任意類型的數(shù)據(jù)。數(shù)組中的單元稱為元素,每個元素包括下標(biāo)(鍵)和值,訪問元素的時候,是通過下標(biāo)來訪問,包括一維數(shù)組,二維數(shù)組及多維數(shù)組(即數(shù)組的嵌套),PHP中分為索引數(shù)組和關(guān)聯(lián)素組。(1)索引數(shù)組:使用整數(shù)作為索引,如$arr=array(’PHP課程’,’HTML課程’,’CSS課程’); (2)關(guān)聯(lián)數(shù)組:使用字符串作為索引,如$arr=array(’ID’=>1,’name’=>’PHP課程’,’class=>’PHP100’);
PHP數(shù)組的聲明和使用1. 直接為數(shù)組元素賦值聲明如果索引下標(biāo)不給出,就會從0開始順序索引;如果給出索引下標(biāo),下一個就會從最大的下標(biāo)開始增1;如果后面出現(xiàn)前面的下標(biāo),則會為前面的元素重新賦值;混合聲明時,索引數(shù)組和關(guān)聯(lián)數(shù)組不互相影響。例如:$array[0]='I';$array[1]='love';$array[2]='PHP';print_r($array);其中,print_r()是一個特殊的函數(shù),允許你查看PHP數(shù)組變量里面的值,會按照一定鍵值和元素的順序顯示出該數(shù)組中的所有元素。這對于程序的調(diào)試很有幫助。2.使用array()函數(shù)聲明默認(rèn)是索引數(shù)組,如果為關(guān)聯(lián)數(shù)組,需要為數(shù)組指定下標(biāo),使用“鍵=>值”,多個成員之間使用' , '分割。例如:$fruits = array(’red’ => ’apple’, ’yellow’ => ’banana’, ’purple’ => ’plum’, ’green’ => ’grape’);print_r($fruits);
PHP數(shù)組的遍歷我們經(jīng)常要對數(shù)組進(jìn)行遍歷,PHP中遍歷數(shù)組的方法有多種,可以使用for()循環(huán)遍歷數(shù)組,在這里,經(jīng)常會用到sizeof()函數(shù),該函數(shù)是常用的數(shù)組函數(shù)之一,返回數(shù)組的大小,即讀取數(shù)組內(nèi)元素的個數(shù),作為循環(huán)計數(shù)器的上限值。還可以使用list()函數(shù)遍歷數(shù)組,它只能用于數(shù)字索引的數(shù)組,且數(shù)字索引從0開始。PHP中還可以使用專門用于對數(shù)組循環(huán)目的函數(shù):foreach()。foreach()對傳遞給它的數(shù)組中的每一個元素執(zhí)行一次,它不需要計數(shù)器或調(diào)用函數(shù)sizeof(),它可以自動跟蹤數(shù)組在數(shù)組中的位置,同時需要更少的維護(hù)。foreach()有兩種語法結(jié)構(gòu):(1)foreach (array_expression as $value) (2)foreach (array_expression as $key => $value) 第一種結(jié)構(gòu)會遍歷給定的array_expression 數(shù)組,每次循環(huán)中,當(dāng)前單元的值被賦給$value 并且數(shù)組內(nèi)部的指針向前移一步。第二種結(jié)構(gòu)中,當(dāng)前單元的鍵名也會在每次循環(huán)中被賦給$key。foreach 循環(huán)運行到結(jié)束,原數(shù)組的內(nèi)部指針將指向數(shù)組的結(jié)尾。例如:foreach ($arr as $value) { echo 'Value: $value ';}foreach ($arr as $key => $value) { echo 'Key: $key; Value: $value ';}
PHP數(shù)組的排序對數(shù)組元素進(jìn)行排序,我們在做項目時使用也比較多,涉及的相關(guān)函數(shù)也有很多,比如 sort(),rsort(),usort(),ksort(),uasort(),uksort() 等等,這里先介紹幾個。使用sort()和rsort()分別對數(shù)組進(jìn)行升序和降序,例如:$arr=array(23,4,65,11,64,8);sort($arr);print_r($arr);運行結(jié)果:Array ( [0] => 4 [1] => 8 [2] => 11 [3] => 23 [4] => 64 [5] => 65 )另外,我們可以注意到通過sort函數(shù)排序之后,數(shù)組原有的索引鍵名會被重新分配。rsort()會對數(shù)組進(jìn)行逆向排序。如果使用了關(guān)聯(lián)數(shù)組,在排序后還要保持關(guān)鍵字和值的排序一致,這就需要使用ksort()和asort()函數(shù),例如:$array=array(’php’=>1,’jsp’=>2,’asp’=>3);ksort($array);print_r($array);運行結(jié)果:Array ( [asp] => 3 [jsp] => 2 [php] => 1 )
相關(guān)文章:
