PHP数组
Posted 飞鱼0725
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP数组相关的知识,希望对你有一定的参考价值。
一、数组的定义
数组在之前我们让大家记住两个观点:
1.数组可以存入多个不同类型的数据,是一个复合数据类型。
2.数组的英文是array,学一了一下最简单的数组声明。
那我们来进行简单的回顾:
<?php $shu = array(1 , 1.5 , true ,\'天王盖地虎,小鸡炖蘑菇\'); echo \'<pre>\'; var_dump($shu); echo \'</pre>\'; ?>
在上例中,我们发现我们存入了:
1.整型
2.浮点
3.布尔
4.字符串
注:上例中echo pre这个标签的主要目的是为原样输出,格式展示的更好看,更清晰。
我们仔细观察一下上面的这张图,你会发现以下几个特点:
1.array(size = 4) 说明里面有4个元素
2.0 => int 1 我们知道int是整型的意思,1是一个整型的数值。那前面的0,1,2,3和=>代表什么意思呢?
3.最新前的0,1,2,3代表的是值的读取标识号,我们称之为下标或者键(英文:key)
4.=> 是一个符号标准叫法叫作:键值对应符。因此,以后再看到 0=> int 1 可以这样来说。 下标访问符0对应整型的1。
5.我们还称数组里面的键值对为元素,元素就是键值对的组合。
索引数组的下标必须要从0开始吗?
例如:
<?php $kele = array(\'llm\',10 => \'NoAlike\', \'PHP\' , \'学PHP\', 19 => \'hhhh\' , \'wwww\'); //打印显示$kele echo \'<pre>\'; var_dump($kele); echo \'</pre>\'; ?>
运行结果:
向索引数组中增加元素
- 向索引数组中增加元素用: 数组变量名[]、数组变量名[键值]这两种方式来增加元素
- 键值的增长规则与之前的规则一样。都是最大值加1的原则。
$kele = array(\'llm\',10 => \'NoAlike\', \'PHP\' , \'学PHP\', 19 => \'hhhh\' , \'wwww\'); //打印显示$kele $kele[]=\'llmjy\'; //加到数组最后 $kele[20]=\'llm20\'; //修改了wwww echo \'<pre>\'; var_dump($kele); echo \'</pre>\';
运行结果:
向索引数组中删除元素
1.使用unset删除变量的方式来删除数组里面的值。
2.删除了中间的值,并不会让后面的下标向前自动移动。而是原来的值为多少就为多少
3.删除掉其中的某个值,新加入的值不会替换掉原来的位置,依然遵循最大值加1的原则。
修改值
1.用变量名[键] = 新值。就把数组中的值定的值修改了。
索引数组的其他声明方式
一、直接用之前未声明的变量,用变量名后面接中括号的方式声明数组。
二、每次用array()写的太麻烦了,还可以不用写array哟,直接用[ ],里面写键/值 对,用逗号隔开。
关联数组
索引数组适当的变一下形就出现了关联数组。只要数组里面有一个为字符串的数组,就为关联数组。
通过上例中,我们发现数组的下标只能够为字符串,当然不能够满足我的需求。
假设我想声明一个下标为帅对应陈奕迅这个值。肯定不能满足我的需求。
那我们来声明一下关联数组。跟索引数组的声明方式完成一样。不过不同的是,必须要指定字符串的下标和必须要使用键值对应符。
PHP数组的计算
数组是我们最常用到的类型,那如何计算某个一维数组的个数呢。其实我们可以用到我们之前学过的数学函数里面的一个:count()。
如果是一个二维数组,这个函数只会统计当前的这一个维度的数组元素个数。如上例中的:$erwei。
所以count($erwei)的时候结果是2。而count($erwei[1])的时候,结果为3。
php for循环遍历索引数组
php foreach遍历关联数组
我们通过上一章的内容学会了遍历连续下标的索引数组。可是,我们发现我们遍历不了关联数组,也遍历不了下标不连续的索引数组。
那我们其实在学循环的时候,有一个布尔型循环是专门用来循环数组的。这个循环的基本语法就是foreach基本语法。
语法:
foreach( 要循环的数组变量 as [键变量 =>] 值变量){ //循环的结构体 }
这是一个固定用法,将要循环的数组放进去。
as 是一个固定的关键字
- 每次循环的时候,把下标赋值给了变量$key,把值的变量赋值给了变量$value
- 循环一次读一次键和值。如上例中,读完“凤姐”再读取“芙蓉”,读到最后,发现没有可以读取的数组元素后,停止循环遍历数据。
注意:$key 和$value并不是变量名必须得为这两个名字。你命名为其他的也可以,如 $kai => $wen是一样的。 你要清楚键赋值给了哪个变量,值赋值给了另外的哪个变量。
遍历多维数组
- 第一次循环的时候,将数组赋值给了$value,然后用foreach循环$value。将二维的子数组中的键给到$k,值赋值给变量$v。
- 第一次循环退出子数组的循环,执行后续代码显示分割线。
- 依此类推,第二次循环也是这样。
php list、each函数遍历数组
list函数:list ( mixed $变量1 [, mixed $变量n ] )
它的功能:将索引数组下标为0的对应我变量1,下标1的对应变量2,依此类推。
<?php list($one , $two , $three) = array(\'张三\' ,\'李四\' ,\'王五\'); //再次声明:单引号不结释变量,所以输出的是字符串$one echo \'$one----\'.$one.\'<br />\'; echo \'$two----\'.$two.\'<br />\'; echo \'$three----\'.$three.\'<br />\'; ?>
运行结果:
结论:
1.将下标为0的张三赋值给了$one
2.将下标为1的李四赋值给了$two
3.将下标为2的王五赋值给了$three
each函数
array each ( array &$array )
功能:传入一个数组。它会将其中的一个元素拆为个新数组。每次执行这样操作一个元素。执行一次先后移动一次,同样的方式操作下一个数组元素。执行到最后,返回false。
。。。。。。未完
以上是关于PHP数组的主要内容,如果未能解决你的问题,请参考以下文章