什么是数组
- 数组是最重要的一个数据类型 是复合类型
- 数组是数据的一个集合,是有序映射
数组的分类
- 索引数组
- 没有下标的数组
- 下标为数字 从0开始计数
- $arr = [1,2,3,4,5];
- 关联数组
- 有下标的数组
- 下标为字符串等等
- 在关联数组种如果下标是小数,就会向下取整作为键名,如果下标是布尔值,true会转换成1,false会转换成0,如果下标是 null 会转成空字符串,如果键名重复,下面的值会覆盖上面的值,如果没有指定键名,键名为最大的下标数字加1,如果全是负数,下标从0开始
- $arr = [ '0'=>1, '1'=>2, '2'=>3, '3'=>4, ];
声明数组的2种方式
- $arr=[];
- $arr=array();
数组里面可以包含多种数据类型,不建议包含资源类型
检测一个变量是否为数组,有3种方法
- 方法一 var_dump();
- 方法二 gettype();
- 方法三 is_array();
快速创建索引数组
- range('a','z');
- 第一个参数:开始,第二个参数:结束,第三个参数:步长不写的话默认为1
- var_dump效果为

快速创建关联数组
- compat();
- 参数的个数不定,值为变量名字符串

声明常量数组
- HELLO:define('HELLO',[1,2,3,4]);
- 特点:该数组不可改变
如何获取数组里面的值:使用下标或者索引来获取,下标可以使用[],也可使用{};
字符串转数组
- 临时转换
str;
- 永久转换
str,array);

- null转换成数组,会转成空数组,切记不要把资源和对象转成数组;
数组的运算符
- "+"号
- 数组+数组,数组合并,如果键名重复,保留最先出现的值
- "=="
- 数组==数组,比较键名和键值,不比较顺序和键值的类型
- "==="
- 数组===数组,比较键名和键值,顺序和键值的类型
- "!="
- 是数组==数组的取反
- "!=="
- 是数组===数组的取反
- "<>"
- 相当于数组!=数组,是数组==数组的取反
遍历数组 的几种方式
for foreach key() current() next() each()
- for 循环有局限性,只能遍历下标连续的索引数组
- foreach 没有for循环name局限

- key() 获取当前指针所在位置的键名如果不存在,返回null
- current() 获取当前指针所在位置的键值,如果不存在,返回false
- next() 将数组指针向下移动一位,返回当前指针所在位置的键值,如果不存在,返回false
- prev() 将数组指针向上移动一位,返回当前指针所在位置的键值,如果不存在,返回false
- reset() 重置指针,把指针移动到数组的开始,返回当前指针所在位置的键值,如果不存在,返回false
- list() 把数组的值,赋值给多个变量,数组必须是,下标连续的索引数组
- each() 得到当前指针所在位置的键值对,返回的是一个数组,包含4各元素,如果是空数组,返回false