php-多維數組,數組遍歷



一、多維數組

多維數組:數組里面的元素又是數組

 

1、二維數組

二維數組:數組中所有的元素都是一位數組

 

 

2、多維數組

在第二維的數組元素中可以繼續是數組,在PHP中沒有維度限制(PHP本質並沒有二維數組)

 

3、異形數組

異形數組(不規則數組):數組中的元素不規則,既有數組也有普通變量,在實際開發中並不常用,盡量讓數組元素規則化,方便訪問

 

二、數組遍歷

數組遍歷:普通數組數據的訪問都是通過數組元素的下標來實現訪問,如果說數組中所有的數據都需要依次輸出出來,就需要我們使用到一些簡化的規則來實現自動獲取下標以及輸出數組元素。

1 $arr=array(0=>array('name'=>'Tom'),1=>array('name'='jim'));//二維數組
2 
3 //訪問一維元素:$arr[一維下標]
4 $arr[0];//結果:array('name'=>'Tom' );
5 
6 //訪問二維元素:$arr[一維下標][二維下標]
7 $arr[1]['name'];//結果:jim
1、foreach遍歷語法

通常:如果是關聯數組(字母下標),就需要下標,如果是數字下標就直接訪問值

1 foreach($數組變量 as [$下標=>] $值){
2     //通過$下標訪問元素的下標﹔通過$值訪問元素的值
3 }
4 //[$下標=>]可以不用寫

示例:

 

 

在進行數據存儲定義的時候,通常二維數組不會兩個維度的key下標都為數字,一般是一維為數字(無意義),二維為字符串(數據庫表字段),所以在進行遍歷的時候,通常是只需要針對一維進行遍歷,取得二維數組元素,然后二維數組元素通過下標去訪問。

 

 

2、foreach遍歷原理

Foreach遍歷的原理:本質是數組的內部有一顆指針,默認是指向數組元素的第一個元素,foreach就是利用指針去獲取數據,同時移動指針。

foreach($arr as $k => $v){ //循環體 }

1、foreach會重置指針:讓指針指向第一個元素; 2、進入foreach循環:通過指針取得當前第一個元素,然后將下標取出放到對應的下標變量$k中(如果存在),將值取出來放到對應的值變量$v中;(指針下移) 3、進入到循環內部(循環體),開始執行; 4、重復2和3,直到在2的時候遇到指針取不到內容(指針指向數組最后)

 

3、for循環遍歷

For循環:基於已知邊界條件(起始和結束)然后有條件的變化(規律)因此: for循環遍歷數組有對應條件 1、獲取數組長度:count(數組)得到數組元素的長度 2.要求數組元素的下標是規律的數字

 

 

4、while配合each和list遍歷數組

While是在外定義邊界條件,如果要實現可以和for循環。

  • Each函數使用: each能夠從一個數組中獲取當前數組指針所指向的元素的下標和值,拿到之后將數組指針下移,同時將拿到的元素下標和值以一個四個元素的數組返回:

  1. o下標–》取得元素的下標值
  2. 1下標–》取得元素的值
  3. Key下標–》取得元素的下標值
  4. value下標–》取得元素的值
  • 如果each取不到結果(數組指針移動到最后),返回falsev

  • List函數使用:list是一種結構,不上一種函數(沒有返回值),是list提供一堆變量去從一個數組中取得元素值,然后依次存放到對應的變量當中(批量為變量賦值:值來源於數組) list必須從索引數組中去獲取數據,而且必須從o開始。

  • List與each配合特別好:each一定有兩個元素就是О和1下標元素 List(變量1,變量2)= each(數組);/是一種賦值運算,但是可以得到false結果(each取不到正確的結果),整個表達式為falsee

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM