PHP数组
1、数组的简介和分类
数组的定义:数组是PHP中的重要数组类型之一,是复合类型;数据的集合,在PHP中数组是一个有序映射。
数组的分类:
索引数组:数组下标的数字;
注意:PHP中数组其实是不区分索引还是关联数组,都是根据键名找到对应的键值。
关联数组:数组的下标为字符是关联数组。
2、定义数组
通过array()形式
①array()空数组
②array(值,…)下标连续的索引数组,下标从0开始
③array(键名=>键值,…)指定下标的索引数组、关联数组、混合数组
④通过[]的形式定义数组,代替array()
⑤注意:
检测是否为数组用var_dump()、gettype()、is_array()
数组键名:
a. 使用合法的数字字符串
b. 浮点数会舍掉小数部分,取整作为键名
c. 布尔true->1,false->0
d. null->空字符串
e. 键名重复,后面的会覆盖之前的键值
f. 如果没有指定键名,而且键名不都为负数,新添加的元素的键名为已有键名最大值加1
g. 如果键名都为负数,那么新添加的元素键名从0开始
通过[]动态创建
$数组名称[]=值,下标连续的索引数组
$数组名称[键名]=值,指定下标的索引数组和关联数组
通过range()和compact()快速创建
range()快速创建下标连续的索引数组
compact()快速创建关联数组
通过define()定义常量数组
3、使用数组
原则
根据键名找键值
$数组名称[键名]|$数组名称{键名}
4、其它类型转换成数组
①临时转换 (array)$var
②永久转换 settype($var,$type)
③注意:
标量类型转换成数组,只有一个元素,键名为0,键值为变量的值
null转换成数组是空数组
不要把对象和资源转换成数组
5、遍历数组
通过foreach遍历数组
①只要键值 -> foreach($数组名称 as $val){循环体;}
②既要键名又要键值 -> foreach($数组名称 as $key=>$val){循环体;}
③注意:
可以通过:和endforeach代替{}
PHP7中foreach的改变:
a. foreach循环对数组内部指针不再起作用
b. 按照值进行循环的时候,foreach是对该数组的值得拷贝
c. 按照引用进行循环的时候,再循环体内修改数组对循环有影响
④相关资料
http://www.laruence.com/2008/11/20/630.html
https://segmentfault.com/a/1190000005044925
通过指针函数遍历
key()
current()
next()
prev()
end()
reset()
通过each()和list()函数遍历数组
each()
list()