韩顺平php从入门到精通 php从入门到精通教程

数组基础含义:数组是一系列数据的***,这些数据按照设定的顺序排列成“链状”。注意:php中数组单元的顺序与下标无关!数组定义(赋值):$arr1 = array(3,11,5,18,2);//这是最常见的数组,下标是“默认下标”,是从0开始的整数;$ arr 2 = array(" a " = >3、“bb”= &g...

数组基础

含义:

数组是一系列数据的***,这些数据按照设定的顺序排列成“链状”。

注意:php中数组单元的顺序与下标无关!

数组定义(赋值):

$arr1 = array(3,11,5,18,2);//这是最常见的数组,下标是“默认下标”,是从0开始的整数;

$ arr 2 = array(" a " = >3、“bb”= >11," cc123"= >5,' d1 ' = & gt18,' xyz ' = & gt2 );关联数组,下标是字符串,公共

$ arr 3 = array(1 = >3,10= >11,3= >5,0= >18,88= >2 );下标可以人为给定;

$ arr 4 = array(1 = >3,' a1 ' = & gt11,3= >5,' mn ' = & gt18,88= >2 );可以混合下标数字和字符串;

$ arr 5 = array(5 = >3,11,3= >5,' mn ' = & gt18, 2 );//有指定的下标和“自动下标”,

//此时下标为:5,6,3,“Mn”,7

//可以看出,自动下标是“前面最大数字下标+1”

$ arr 6 = array(5 = >3,7.7= >11,3= >5,' mn ' = & gt18, 2 );//此时下标为:5,7,3,“Mn”,8

$ arr 7 = array(5 = >3,true = & gt11,false = & gt5,' mn ' = & gt18, 2 );//此时下标为:5,1,0,“Mn”,6

$ arr 8 = array(1 = >3,3= >33,true = & gt11, );//此时下标为:1,3,对应的值为:11,33。

//如果有重复的下标,后面的值覆盖前面的值;

$ arr 9 = array(1 = >3,-3 = >33, 11, );//此时下标为:1,-3,2。注:最后一个逗号“可以有”。

其他一些形式:

$ arr 10[]= 3;

$ arr 10[]= 11;

$ arr 10[]= 5;//这个数组的下标是0,1,2,这是一般情况

$ arr 11[' a ']= 3;

$ arr 11[' bb ']= 11;

$ arr 11[' cc 123 ']= 5;//数组下标为' a ',' bb ',' cc123 ',这是一般情况。

$ arr 12[1]= 3;

$ arr 12[]= 11;//此时,下标为2

$ arr 13[' cc 123 ']= 5;//数组下标是1,2,“cc123”

注意:在php中,数组单元的顺序是由它们的“放入”顺序决定的,而不是下标。

数组值:

$ v1 = $ arr 1[0];

$ I = 3;

$ v2 = $ arr 1[$ I];//获取数组下标为3的单元格的值;

一般情况下可以得到数组中一个单元格的值,一个组中一个变量的值是完全一样的!!!

数组的分类

除以键值关系:

Index:一般认为,如果数组的下标是从0开始的连续整数,则称之为index array——即类似于js array的下标。例如:

$arr1 = array(3,11,5,18,2);//这是最常见的数组,下标是“默认下标”,是从0开始的整数;

关联数组:一般认为,如果一个数组的下标都是一个“字符串”,并且在一定程度上表示了该单元的“含义”,则称之为关联数组,例如:

$conf = array(

host ' = & gt“本地主机”,

端口' = & gt3306 ,

用户名' = & gt根',

密码' = & gt'123' ,

);

混合数组:有数字下标和字符下标:

$ arr 4 = array(1 = >3,' a1 ' = & gt11,3= >5,' mn ' = & gt18,88= >2 );可以混合下标数字和字符串;

根据数组的维数(复杂度):

一维数组:

$a = array(1,11,111);

$b = array(2,22,222);

$c = array(3,33,333);

二维数组:

$dd =数组(

阵列(1,11,111),

阵列(2,22,222),

数组(3,33,333)

);

多维数组:无非是在内部继续,用数组代替。

数组的基本用法

求一维数组的平均值:

求二维数组的平均值:

求一维数组的最大值:

找到一维数组的最大值和最小值的位置:

有关数组的交换,再说两句:关于数组交换的另外两句话:

$a = array( 3,11,5,7,20,18);//下标是0,1,2,3,4,5

1:交换数组的第0和第3项:

$ v1 = $ a[0];

$ v2 = $ a[3];

$ t = $ v1;

$ v1 = $ v2;

$ v2 = $ t;//这种做法根本行不通,因为v1和v2只是2个变量,与数组无关!

正确的做法是:

$ t = $ a[0];

$ a[0]= $ a[3];

$ a[3]= $ t;

2:交换数组的第一项和最后一项:

$ pos 1 = 0;//第一项的下标

$pos2 =计数($ a)–1;//最后一项的下标

$ t = $ a[$ pos 1];

$ a[$ pos 1]= $ a[$ pos 2];

$ a[$ pos 2]= $ t;

3:交换数组的最大值和最小值:

$ pos _ ***x = & # 8230。;//经过一些计算得到最大项的下标;

$ pos _ min = & # 8230。;//经过一些计算得到最小项的下标。

$ t = $ a[$ pos _ ***x];

$ a[$ pos _ ***x]= $ a[$ pos _ min];

$ a[$ pos _ min]= $ t;

遍历数组

foreach的基本语法

Foreach( $ array变量名为[$ key = >;】$value ){

//圆形体;可以“使用”$key和值;这里;

//$key和$value是遍历语句反复得到的数组每个单元格(项)的下标和对应的值。

//此外,它总是从数组的开头按顺序取回数据。

}

指针操作和数组遍历原理:

首先,看一下阵列的“映像图”:

$ arr 4 = array(1 = >3,' a1 ' = & gt11,3= >5,' mn ' = & gt18,88= >2 );

可以形象地理解为:

数组下标:1“a1”3“mn”88对应数据:8115182

其中,箭头就是数组内部所谓的“指针”——注意,它是不可见的,不能输出,它只是一个辅助理解的图形!

描述:

1,箭头就是数组内部所谓的“指针”。

2,默认情况下,该指针指向数组的第一个单元格。

3.如果没有指定下标,数组单元格上的操作就是指针指向的单元格上的操作。

4.所谓遍历,其实就是反复获取当前单元格的键和值,放入对应的变量$key,$value,然后将指针移动到下一个单元格。

那么,作为“总数据单元”的数组具有以下指针操作功能:

1,$v1 =当前($ array);//获取数组的“值”作为指针所在的单元格;

2,$ v2 = key($ array);//获取数组的“key”(下标)作为指针所在的单位;

3,$ v3 = next($ array);//先将数组的指针移动到下一个(后一个)单元,再获取新单元的值;

4,$ v4 = prev($ array);//先将数组的指针上移(前)一个单位,再获取新单位的值;

5,$ V5 = end($ array);//先将数组的指针直接移动到最后一个单元格,然后获取新单元格的值;

6,$ V6 = reset($ array);//先将数组的指针直接移动到第一个单元格,然后获取新单元格的值;

foreach遍历过程示意图:

Foreach( $ array变量名as $ key = >;$value ){

//圆形体;可以“使用”$key和值;这里;

//$key和$value是遍历语句反复得到的数组每个单元格(项)的下标和对应的值。

//此外,它总是从数组的开头按顺序取回数据。

}

基本原理图如下:

输出结果为:输出是:

可以看到,遍历之后,指针已经超出了数组的合理位置。

使用for和next遍历数组

注意:对于php数组,不能简单地使用for循环来遍历它们。

或者:在php中,使用for循环只能循环“带连续下标的纯整数数组”;

结果:

each()函数的使用

each()函数用于获取一个数组的“当前单元格”的下标和值(并放入一个数组中),然后将指针移动到下一个单元格。

使用形式:

$a = each($数组名);//此时$a是一个数组

list()" function "的用法:

函数的作用是:一次获取数组中多个下标为0的单元格的值!

表单:

列表($变量1,$变量2,$变量3,..)= $ array

角色:

上面一行代码相当于下面的代码:

$ variable 1 = $ array[0];

$ variable 2 = $ array[1];

$ variable 3 = $ array[2];

……..

注意:在这里,变量的数量应该对应于数组的下标单元。如果变量对应的数字下标不存在,则会报错!

while+each()+list()遍历数组While+each()+list()遍历数组。

数组变量的一些细节

Foreach也是一个普通的循环语法结构,可以有break、continue等操作。

遍历过程中值变量默认的值传递方式是值传递。

结果是:

在遍历过程中,可以人为设置value变量通过引用传递:foreach($ arr as $ key = >;& amp$ value){ …}

结果是:

Foreach默认遍历原始数组。但是,如果在遍历过程中对数组进行了一些修改或指针操作,数组将被***,循环将在***的数组上继续遍历(原始数组将保持不变)。

下面演示了“默认情况下在原始数组上遍历foreach”的效果:

然后,再次演示:在某些情况下(修改或指针操作),它并没有遍历原始数组。

结果是:

在foreach中,如果value变量是通过引用传递的,无论如何都会在原始数组上完成。

本文来自暗夜殘星投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/654324.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 07-29
下一篇 07-29

相关推荐

  • 韩顺平php从入门到精通 php从入门到精通教程

    数组基础含义:数组是一系列数据的***,这些数据按照设定的顺序排列成“链状”。注意:php中数组单元的顺序与下标无关!数组定义(赋值):$arr1 = array(3,11,5,18,2);//这是最常见的数组,下标是“默认下标”,是从0开始的整数;$ arr 2 = array(" a " = >3、“bb”= &g

    2023-07-29 01:18:01
    282 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信