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

 

posted @ 2020-09-09 23:29  山鬼不识字  阅读(1315)  评论(0编辑  收藏  举报