数组遍历基础知识点

193 阅读2分钟

什么是数组

  • 数组是最重要的一个数据类型复合类型
  • 数组是数据的一个集合,是有序映射

数组的分类

  • 索引数组
    • 没有下标的数组
    • 下标为数字 从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="zhangsan"  (array)str;
  • 永久转换 str="wangwu"    settype(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

以上内容转自 猫哥的技术博客 原文链接 juejin.cn/post/684490… 转侵删!!!!