数组用于在单个变量中存储多个值。在 PHP 中,一个数组可以保存多种数据类型。在 PHP 中,数组分为三种类型:
- 索引数组 - 具有数字索引的数组
- 关联数组 - 具有命名键的数组
- 多维数组 - 包含一个或多个数组的数组
在本节中,我们将讨论索引数组。其他类型的数组将在后面的部分中讨论。
创建索引数组
可以使用 array() 关键词创建索引数组。它可以在创建时通过 array() 关键字指定数组的所有元素并用逗号 (,) 分隔来初始化,也可以稍后通过使用索引号指定值来初始化。
或者,也可以使用 [] 代替 array()。
语法
//创建一个空数组
$MyArray = array();
$MyArray = [];
//创建一个带有初始化的数组
$MyArray = array(value1, value2, ...);
$MyArray = [value1, value2, ...];
//创建数组后初始化
$MyArray[index_number] = value;
访问索引数组的元素
索引数组的元素可以可以通过它的索引号来访问。在 PHP 中,数组的索引号从 0 开始,如下图所示:
下面的示例描述了如何使用索引号访问数组的元素。
<?php
//创建一个包含3个元素的数组
$MyArray = array('MON', 'TUE', 'WED');
//使用索引号来赋值
//到数组的第4个和第5个元素
$MyArray[3] = 'THU';
$MyArray[4] = 'FRI';
for ($i = 0; $i < count($MyArray); $i++) {
//使用索引号访问元素
echo "索引值=$i 是 $MyArray[$i] \n";
}
?>
上述代码的输出将是:
索引值=0 是 MON
索引值=1 是 TUE
索引值=2 是 WED
索引值=3 是 THU
索引值=4 是 FRI
修改索引数组的元素
索引数组的任何元素都可以使用其索引号并分配新值来更改。考虑下面的示例:
<?php
//创建一个包含5个元素的数组
$MyArray = array(10, 20, 30, 40, 50);
//改变索引=1处元素的值
$MyArray[1] = 1000;
//显示数组
print_r($MyArray);
?>
上述代码的输出将是:
Array
(
[0] => 10
[1] => 1000
[2] => 30
[3] => 40
[4] => 50
)
基于 1 的索引数组
创建一个基于 1 的索引数组可以使用以下示例:
<?php
$firstquarter = array(1 => 'JAN', 'FEB', 'MAR');
print_r($firstquarter);
?>
上述代码的输出将是:
Array
(
[1] => JAN
[2] => FEB
[3] => MAR
)
遍历数组
通过使用 for 循环、while 循环或foreach 循环,可以访问索引数组的每个元素。
for 循环遍历数组
在下面的示例中,for 循环用于访问给定数组的所有元素。
<?php
//创建一个包含5个元素的数组
$MyArray = array(10, 20, 30, 40, 50);
for ($i = 0; $i < count($MyArray); $i++) {
//使用索引号访问元素
echo "\$MyArray[$i] = $MyArray[$i] \n";
}
?>
上述代码的输出将是:
$MyArray[0] = 10
$MyArray[1] = 20
$MyArray[2] = 30
$MyArray[3] = 40
$MyArray[4] = 50
while 循环遍历数组
同样,while 循环也可用于访问元素
<?php
//创建一个包含5个元素的数组
$MyArray = array(10, 20, 30, 40, 50);
$i = 0;
while($i < count($MyArray)) {
//使用索引号访问元素
echo "\$MyArray[$i] = $MyArray[$i] \n";
$i++;
}
?>
上述代码的输出将是:
$MyArray[0] = 10
$MyArray[1] = 20
$MyArray[2] = 30
$MyArray[3] = 40
$MyArray[4] = 50
foreach 循环遍历数组
在下面的示例中,foreach 循环用于访问数组的所有元素。
<?php
//创建一个包含5个元素的数组
$MyArray = array(10, 20, 30, 40, 50);
echo "MyArray contains: ";
foreach ($MyArray as $i) {
echo $i." ";
}
?>
上述代码的输出将是:
MyArray contains: 10 20 30 40 50
完整的 PHP 数组参考
有关所有 PHP 数组函数的完整参考,请参阅完整的 PHP 数组参考。