数组

数组

    数组就是一组数据的集合,就是用于存储多个具有一定关系的多个变量。对应现实中的具有行列结构的数据。

数组的定义

方式1:使用array()数组结构

示例:

方式2:使用简单语法结构'[]',注意:此种语法只能在5.4及其以上的版本中使用

示例:

方式3:动态添加数元素的方式

示例:

数组的访问

    在数组中唯一标识元素的是下标(键名),

语法:

    $数组名[下标/键名]

示例:

 

PHP数组的特点

1、php中数组可以直接使用,不需要预先定义。

2、php中数组的长度不需预先定义。

3、php中数组的元素可以是任意数据类型。

4、php中数组的下标可以不连续

PHP中数组的分类

    根据数组元素的下标是数值、字符还是数值与字符混合,可以将PHP中的数组分为,索引数组、关联数组、混合数组

索引数组:

    数组元素的下标是整数,

关联数组:

    数组元素的下标是字符。关联数组的特点:每个元素都由两部分组成,键名与键值。

关联数组的创建:

语法:

    $数组名 = array(键名=>键值,键名=>键值.....);

示例:

数组的遍历

遍历:就为了某种需求,对数组中所有的元素都进行一次访问。

使用for循环结构,条件是所遍历数组的元素的下标必须是连续的。

示例:

php为我们提供了专用于遍历数组的语法结构:foreach

语法:

    foreach($arr as $v1【=>$v2】){

        //循环体

    }

说明:

    foreach是对数组的指针进行操作(读取每一个元素的键名与键值,并赋值给$v1与$v2,之后还要将指针下移)

示例:

foreach原理

代码:

    $arr = ['0'=>10,'3'=>20,'nine'=>30,'10'=>40];

    foreach($arr as $v1 => $v2){

        echo "键名为:$v1"."键值为:$v2".'<br/>';

    }

原理:

1、编译源代码,

2、执行

2.1、首先在栈区开辟一个空间存储$arr

2.2、在存储数据时,发现赋值号右边是一个数组,那么就是在堆区开辟个空间用于存储数组的数据

2.3、将数组的内存 地址,传递给栈区中的$arr

3、执行foreach

3.1、在栈区开辟两个空间存储$v1与$v2

3.2、读取当前数组指针所指向的元素,将当前元素的键名与键值,赋值给变量$v1与$v2

3.2.1、会在全局区开辟空间用于存储数据0与10

3.3、将数组的指针下移一行

3.4、执行下一次循环,与3.2 3.2.1相同的操作,当前循环执行结束,将数组指针再下移一行。

3.5再次循环

3.6再次循环,循环结束,指针再下移一行

3.7再次循环时,发现没有数据,那么直接结束循环结构。

 

图解:

数组相关函数

each()

    主要用于每次读取数组当前指针所指向的元素(读取一个元素的)键名与键值,并组织混合数组返回。将指针下移一行

示例:

 

list();

语法:

    list(变量列表)=$数组名;

说明:

  • list是一种语法结构,不是一个函数
  • 作用将数组中的元素依次赋值给list后的变量列表中的变量
  • list只能获取索引下标的元素

示例:

 

each与list遍历索引数组

示例:

原文地址:https://www.cnblogs.com/nyxd/p/5356122.html