Array 数组
PHP 中的 array 实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型针对多种不同用途进行了优化; 它可以被视为数组、列表(向量)、哈希表(映射的实现)、字典、集合、堆栈、队列等等。 由于 array 的值可以是其它 array 所以树形结构和多维 array 也是允许的。
解释这些数据结构超出了本手册的范围,但对每种结构至少会提供一个例子。 要得到这些数据结构的更多信息,建议参考有关此广阔主题的其它文献。
语法
定义数组 array()
可以用 array() 语言结构来新建一个 array。它接受任意数量用逗号分隔的键(key) => 值(value)对。
最后一个数组单元之后的逗号可以省略。通常用于单行数组定义中,例如常用 array(1, 2) 而不是 array(1, 2, )。对多行数组定义通常保留最后一个逗号,这样要添加一个新单元时更方便。
注意:
可以用短数组语法 [] 替代 array() 。
示例 #1 一个简单数组
key 可以是 integer 或者 string。value 可以是任意类型。
此外 key 会有如下的强制转换:
String 中包含有效的十进制 int,除非数字前面有一个 + 号,否则将被转换为 int 类型。例如键名 "8" 实际会被储存为 8。另外, "08" 不会被强制转换,因为它不是一个有效的十进制整数。
Float 也会被转换为 int,意味着其小数部分会被舍去。例如键名 8.7 实际会被储存为 8。
Bool 也会被转换成 int。即键名 true 实际会被储存为 1 而键名 false 会被储存为 0。
Null 会被转换为空字符串,即键名 null 实际会被储存为 ""。
Array 和 object 不能 被用为键名。坚持这么做会导致警告:Illegal offset type。
如果在数组定义时多个元素都使用相同键名,那么只有最后一个会被使用,其它的元素都会被覆盖。
示例 #2 类型转换与覆盖的示例