1. 文章
  2. 文章详情

PHP数组解析

数组简介及分类

数组定义:
  • 数组是PHP中的重要数组类型之一,是复合类型;
  • 数据的集合,在PHP中数组是一个有序映射;
数组分类
  • 索引数组:数组的下标是数字;
  • 关联数组:数组的下标为字符是关联数组;

注意:PHP中数组其实是不区分索引还是关联数组,都是根据键名找到对应的键值

定义数组

1. 通过array()形式:

  • array()空数组;
  • array(值,...)下标连续的索引数组,下标从0开始;
  • array(键名=>键值,...)指定下标的索引数组、关联数组、混合数组;
  • 通过[]的形式定义数组,代替array();

注意:  检测是否为数组:var_dump(); gettype(); is_array();

2. 通过 [ ] 动态创建:

  • $数组名称[]=值:下标连续的索引数组;
  • $数组名称[键名]值:指定下标的索引数组和关联数组

3. 通过range()和compact()快速创建:

  • range()快速创建下标连续的索引数组
  • compact()快速创建关联数组

4. 通过define()定义常量数组

使用数组

  1. 根据键名找键值;
  2. $数组名称[键名]|$数组名称{键名}

其它类型转换成数组

  1. 临时转换:(array)$var;
  2. 永久转换:settype($var,$type);

注意:

  1. 标量类型转换成数组,只有一个元素,键名为0,键值为变量的值;
  2. null转换成数组是空数组;
  3. 不要把对象和资源转换成数组;

数组运算符

  • +运算符:合并数组,如果键名相同,使用前面数组的键值;
  • == :只比较键名和键值是否相同,如果相同返回true,否则返回false;
  • ===:既要比较键名和键值是否相同,还要比较类型和顺序;
  • != <>:相当于取反;
  • !==:相当于取反;

遍历数组

1. 通过foreach遍历数组:

  • 只要键值:foreach($数组名称 as $val){循环体;};
  • 既要键名又要键值:foreach($数组名称 as $key=>$val){循环体;};

注意:

可以通过:和endforeach代替{};

PHP7中foreach的改变:

foreach循环对数组内部指针不再起作用;

按照值进行循环的时候,foreach是对该数组的值得拷贝;

按照引用进行循环的时候,再循环体内修改数组对循环有影响

2. 通过指针函数遍历:

  • key();
  • current();
  • next();
  • prev();
  • end();
  • reset();

3. 通过each()和list()函数遍历数组:

  • each();
  • list()

参考:https://zhuanlan.zhihu.com/p/29350843

发表评论

登录后才能评论

评论列表(0条)