在之前的文章《PHP數(shù)組學(xué)習(xí)之二維數(shù)組創(chuàng)建方法淺析》中,我們介紹了如何創(chuàng)建二維數(shù)組(多維數(shù)組),感興趣的可以去看看。既然有了數(shù)組,那就要操作,有時(shí)就需要知道數(shù)組長(zhǎng)度(數(shù)組中所有元素的個(gè)數(shù))。那么如何獲取二維數(shù)組甚至多維數(shù)組的數(shù)組長(zhǎng)度呢?今天我們就來(lái)和大家一起了解下。
一維數(shù)組的數(shù)組長(zhǎng)度我們知道怎么獲取,很簡(jiǎn)單,直接使用count($arr)
就可以了。
<?php header("Content-type:text/html;charset=utf-8"); $arr= array("香蕉","蘋果","梨子","橙子","橘子","榴蓮"); //輸出語(yǔ)句 var_dump($arr); echo "數(shù)組長(zhǎng)度為:".count($arr); ?>
輸出結(jié)果:
是不是很簡(jiǎn)單,那么二維數(shù)組呢?二維數(shù)組甚至多維數(shù)組如何計(jì)算數(shù)組長(zhǎng)度,統(tǒng)計(jì)所以元素的個(gè)數(shù)?
二維數(shù)組也簡(jiǎn)單,還是使用count()函數(shù),只需要給count()函數(shù)傳遞二個(gè)參數(shù):第一個(gè)參數(shù)和上面一樣為$array,指定要計(jì)數(shù)的數(shù)組;而第二個(gè)參數(shù)為$mode
,值設(shè)置為 COUNT_RECURSIVE
或者 1
,這樣count()函數(shù)就會(huì)遞歸地計(jì)算出數(shù)組中元素個(gè)數(shù)。
下面我們通過(guò)兩個(gè)代碼實(shí)例來(lái)具體了解下,利用count()函數(shù)如何通過(guò)多維數(shù)組的數(shù)組長(zhǎng)度。
實(shí)例1:二維數(shù)組的長(zhǎng)度
<?php header("Content-type:text/html;charset=utf-8"); $arr= array ("張三", 25, array("高數(shù)","PHP教程","英語(yǔ)"), ); //輸出語(yǔ)句 echo "數(shù)組長(zhǎng)度為:".count($arr,1); ?>
輸出:
數(shù)組長(zhǎng)度為:6
看了上面的輸出結(jié)果,是不是感到疑惑,數(shù)組中不是只有5個(gè)元素("張三"
、25
、"高數(shù)"
、"PHP教程"
、"英語(yǔ)"
)嗎,為什么結(jié)果顯示的數(shù)組長(zhǎng)度不是5,而是6呢?
其實(shí)是因?yàn)椋藭r(shí)count()函數(shù)循環(huán)統(tǒng)計(jì)二維數(shù)組中的所有元素,“array("高數(shù)","PHP教程","英語(yǔ)")
”會(huì)被當(dāng)做一個(gè)整體統(tǒng)計(jì)一次,它里面的元素("高數(shù)"
、"PHP教程"
、"英語(yǔ)"
)又會(huì)被統(tǒng)計(jì)一次,所以最終結(jié)果為 6。
我們通過(guò)var_dump()函數(shù)輸出$arr數(shù)組,看看它的數(shù)據(jù)結(jié)構(gòu),可以直觀的了解count()函數(shù)的流程。
實(shí)例2:三維數(shù)組的長(zhǎng)度
<?php header("Content-type:text/html;charset=utf-8"); $arr = array( '安徽' => array( '合肥'=>array('蜀山區(qū)','長(zhǎng)豐縣','肥東'), '宿州'=>array('墉橋區(qū)','靈璧縣','泗縣') ), '河南' => array( '洛陽(yáng)'=>array('西工區(qū)','老城區(qū)','孟津縣'), '鄭州市'=>array('中原區(qū)','金水區(qū)') ) ); var_dump($arr); echo "數(shù)組長(zhǎng)度為:".count($arr,1); ?>
輸出結(jié)果:
擴(kuò)展知識(shí):
計(jì)算數(shù)組長(zhǎng)度除了可以使用count()函數(shù)外,我們還能使用sizeof()函數(shù)。sizeof()函數(shù)是count()函數(shù)的別名,其功能和使用方法與 count()函數(shù)完全一樣的。
好了就說(shuō)到這里了,有其他想知道的,可以點(diǎn)擊這個(gè)哦?!?→php視頻教程
最后給大家推薦一個(gè)PHP數(shù)組的免費(fèi)視頻教程:PHP函數(shù)之a(chǎn)rray數(shù)組函數(shù)視頻講解,快來(lái)學(xué)習(xí)吧!