数组用于在单个变量中存储多个值。在 PHP 中,一个数组可以保存多种数据类型。在 PHP 中,数组分为三种类型:

在本节中,我们将讨论索引数组。其他类型的数组将在后面的部分中讨论。

创建索引数组

可以使用 array() 关键词创建索引数组。它可以在创建时通过 array() 关键字指定数组的所有元素并用逗号 (,) 分隔来初始化,也可以稍后通过使用索引号指定值来初始化。

或者,也可以使用 [] 代替 array()。

语法

//创建一个空数组
$MyArray = array();  
$MyArray = []; 

//创建一个带有初始化的数组
$MyArray = array(value1, value2, ...);
$MyArray = [value1, value2, ...]; 

//创建数组后初始化
$MyArray[index_number] = value; 

访问索引数组的元素

索引数组的元素可以可以通过它的索引号来访问。在 PHP 中,数组的索引号从 0 开始,如下图所示:

PHP 数组

下面的示例描述了如何使用索引号访问数组的元素。

<?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 数组参考。