传统上把数组(array)定义为一组有某种共同特性的元素,这里的共同特性包括相似性(车模、棒球队、水果类型等)和类型(例如所有元素都是字符串或整数)等,每个元素由一个特殊的标识符来区分,这称为健(key)。
请注意,上面这句话中的传统上一词,因为现在可以摒弃这种定义,数组结构中可以包括完全无关的元素。
PHP则更进一步,数组中的元素甚至可以不属于同一种类型。
例如,一个数组可能包含州名、邮政编码、考试成绩或扑克牌等元素。
每个实体包含两个项:前面提到的健(key)和值(value)。
可以通过查询键来获取其相应的值。这些键可以是数值(numerical) 健或关联(associative)健。
数值键与值没有真正的联系,它们只是值在数组中的位置。
例如,一个数组中包含按字母顺序排列的水果名,键0表示apple,键2表示pear。
使用 PHP 语法,该数组如下:
$fruits = array(
"0"=>"apple",
"1"=>"banana"
"2"=>"pear"
);
使用数组索引,可以如下引用第一个元素(apple):
$fruits[0]
PHP的数值索引组以位置0起始,而不是1。
与此不同的是,关联键与值有一定关系,而不是值在数组中的位置。使用数值索引值不可行时,以关联的方式来映射数组会特别方便。
例如,你可能希望创建一个将水果缩写映射到水果名的数组,如AP/apple
、BA/banana
和PE/Pear
。
使用PHP语法,该数组如下:
$fruits = array(
"AP"=>"apple",
"BA"=>"banana",
"PE"=>"pear"
);
可以如下引用apple:
$fruits["AP"];
还可以创建包含数组的数组,这称为多维数组(multidimensional arrays)。例如,可以使用一个多维数组存储水果的信息。使用PHP语法,该数组如下:
$fruits = array(
"apple"=>array(
"name"=>"apple",
"color"=>"red"
),
"banana"=>array(
"name"=>"banana",
"color"=>"yellow"
)
);
然后可以如下引用apple的color:
$states["apple"]["color"];
这将返回以下值:
red
你自然会想知道遍历数组的方法。PHP提供了很多遍历数组的方法。
无论使用哪一种方法,要记住,它们都依赖于一种称为数组指针(array pointer)的特性。
数组指针就如同书签,告诉你正在检查的数组位置。你并不是直接操作数组指针,而是使用内置的语言特性或函数来遍历数组。但是,理解这个基本概念很有用。
猜你喜欢: