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()