使用数组
数组是一个可以存储一组或一系列数值的变量。一个数组可以具有许多个元素。每个元素有一个值,例如文本、数字或另一个数组。一个包含其他数组的数组称为多维数组。
什么是数组
一个标量变量就是一个用来存储数值的命名区域。同样,一个数组就是一个用来存储一系列变量值的命名区域,因此,可以使用数组组织标量变量。
存储在数组中的值称为数组元素。每个数组元素有一个相关的索引(也称为关键字),它可以用来访问元素。在大多数编程语言中,数组都具有数字索引,而且这些索个通常是从0或1开始的。
数字索引数组
在PHP中,数字索引的默认值是从0开始的,当然也可以改变它。
1. 数字索引数组的初始化
$porducts = array( 'Tires', 'Oil', 'Spark Plugs' );
就像echo语句一样,array()实际上是一个语言结构,而不是一个函数。
根据对数组内容的需求不同,可能不需要再像以上例子一样对它们进行手工的初始化操作。如果所需数据保存在另一个数组中,可以使用运算符“=”简单地将数组复制到另一个数组。
如果需要将按升序排列的数字保存在一个数组中,可以使用range()函数自动创建这个数组。如下这行代码将创建一个从1到10的数字数组:$numbers = range(1,10);
range()函数具有一个可选的第三个参数,这个参数允许设定值之间的步骤。例如,如需建立一个1到10之间的奇数数组,可以使用如下代码:$odds = range(1,10,2);
range()函数也可以对字符进行操作,如:$letters = range('a', 'z');
2. 访问数组的内容
要访问一个变量的内容,可以直接使用其名称。如果该变量是一个数组,可以使用变量名称和关键字或索引的组合来访问其内容。关键字或索引将指定我们要访问的变量。索引在变量名称后面用方括号括起来。
在默认的情况下,0元素是数组的第一个元素。
请注意,虽然PHP的字符串解析功能非常强大和智能,但是可能会引起混淆。当你将数组或其他变量嵌入双引号中的字符串时,如果不能正确解释它们,可以将它们放置在双引号之外,或者查找第4章的“字符串操作与正则表达式”获得更复杂的语法。
就像PHP的其他变量一样,数组不需要预先初始化或创建。在第一次使用它们的时候,它们会自动创建。
3. 使用循环访问数组
由于数组使用有序的数字作为索引,所以使用一个for循环就可以很容易地显示数组的内容。
for ($i=0; $i<3; $i++)
echo "$products[$i]";
使用一个简单的循环就可以访问每个元素是数字索引数组的一个非常好的特性。也可以使用foreach循环,这个循环语句是专门为数组而设计的。如:
foreach ($products as $current)
echo $current. ' ';
使用不同索引的数组
PHP还支持相关数组。在相关数组中,可以将每个变量值与任何关键字或索引关联起来。
1 初始化相关数组
如下所示的代码可以创建一个以产品名称作为关键字、以价格作为值的相关数组:
$prices = array( 'Tires'=>100, 'Oil'=>10, 'Spark Plugs'=>4 );
关键字和值之间的符号只是一个大于号与等于符号。
¥本文来%源[email protected]搞@^&代*@码)网5搞gaodaima代码2 访问数组元素
同样,可以使用变量名称和关键字来访问数组的内容。例如$prices['Tires']。
3 使用循环语句
因为相关数组的索引不是数字,因此无法在for循环语句中使用一个简单的计数器对数组进行操作。但是可以使用foreach循环或list()和each()结构。
当使用foreach循环语句对相关数组进行操作时,foreach()循环具有不同的结构。可以按如下方式使用关键字:
foreach ($prices as $key => $value)echo $key.'=>'.$value.'<br />';如下所示的代码将使用each()结构打印$prices数组的内容:while( $element = each($prices)){echo $element['key'];echo ' - ';echo $element['value'];echo '<br />';}