在php中對數(shù)組遍歷用得最多要算是foreac,while,for這幾種方法了,下面我們來介紹這三種遍歷數(shù)組的實現(xiàn)程序代碼吧。
經(jīng)常會有人問我,PHP的數(shù)組,如果用foreach來訪問,遍歷的順序是固定的么? 以什么順序遍歷呢?比如如下代碼:
又比如如下代碼:
當我們使用each/next系列函數(shù)來遍歷的時候,也是通過移動數(shù)組的內(nèi)部指針而實現(xiàn)了順序遍歷,這里有一個問題,比如如下代碼:
了解到我剛才介紹的知識,那么這個問題也就很明朗了,因為foreach會自動reset,而while這塊不會reset,所以在foreach結(jié)束以后,pInternalPointer指向數(shù)組最末端, while語句塊當然訪問不到了,解決的辦法就是在each之前,先reset數(shù)組的內(nèi)部指針.
也就是說, PHP中遍歷數(shù)組的順序, 是和元素的添加先后相關(guān)的, 那么, 現(xiàn)在我們就很清楚的知道,文章開頭的問題的輸出是:
huixinchen,2007,2008
所以,如果你想在數(shù)字索引的數(shù)組中按照索引大小遍歷,那么你就應該使用for,而不是foreach,代碼如下: