PHP中的数组
2015-09-09 14:14
411 查看
概述
PHP 中的数组实际上是一个有序映射,映射是一种把 values 关联到 keys 的类型。PHP 数组可以同时含有 integer 和 string 类型的键名,因为 PHP 实际并不区分索引数组和关联数组。
键(key)可以是一个整数 integer 或字符串 string
值(value)可以是任意类型的值
数组的定义
有两种方式可以用 array() 语言结构来新建一个数组
array( key => value , ... )
自 5.4 起可以使用短数组定义语法,用 [] 替代 array()
最后一个数组单元之后的逗号可以省略。通常用于单行数组定义中,例如常用 array(1, 2) 而不是 array(1, 2, )。对多行数组定义通常保留最后一个逗号,这样要添加一个新单元时更方便。
数组的键
键(key)可是是一个整数 integer 或字符串 string此外 key 会有如下的强制转换
包含有合法整型值的字符串会被转换为整型。例如键名 “8” 实际会被储存为 8。但是 “08” 则不会强制转换,因为其不是一个合法的十进制数值。
浮点数也会被转换为整型,意味着其小数部分会被舍去。例如键名 8.7 实际会被储存为 8。
布尔值也会被转换成整型。即键名 true 实际会被储存为 1 而键名 false 会被储存为 0。
Null 会被转换为空字符串,即键名 null 实际会被储存为 “”。
数组和对象不能被用为键名。坚持这么做会导致警告:Illegal offset type。
如果在数组定义中多个单元都使用了同一个键名,则只使用了最后一个,之前的都被覆盖了
如果对给出的值没有指定键名,则取当前最大的整数索引值,而新的键名将是该值加一;如果当前还没有整数索引,则键名将为 0。
$foo[‘bar’] 与 $foo[bar]
对于$foo[bar],如果没有常量定义为 bar,PHP 将把它替代为 ‘bar’ 并使用之数组的遍历
foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象。有两种语法:
foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
unset()
unset() 函数允许删除数组中的某个键。但要注意数组将不会重建索引。如果需要删除后重建索引,可以用 array_values() 函数。<?php $arr = ['a', 'b', 'c']; var_dump($arr); // array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" } unset($arr[2]); var_dump($arr); // array(2) { [0]=> string(1) "a" [1]=> string(1) "b" } $arr[] = 'd'; var_dump($arr); // array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [3]=> string(1) "d" }
数组函数
http://php.net/manual/zh/ref.array.php相关文章推荐
- PHP文件上传类应用
- php实现发送邮件
- PHP重定向的具体实现方式
- php注册+验证码
- PHP中this,self,parent的区别
- Laravel框架下创建命令行文件
- phpmyadmin基本功能已禁用的解决办法
- PHP中的一些边角料
- PHP开发中调试日志生成方法
- yii2安装 程序模板安装
- PHP版消灭星星实现算法
- PHP用文件锁模拟进程锁
- PHP heredoc技术
- php的异常处理 try catch
- RTP头简介
- thinkphp phpexcel使用
- 【ThinkPHP】ThinkPHP对Mysql数据库的增删改查,volist标签附带条件判断的用法
- PHP库收集
- PHP register_shutdown_function函数详解
- PHP:字符串转数组,数组转字符串;字符串截取、替换、查找