PHP 数组

在本教程中,你将学习如何在 PHP 中的单个变量中存储多个值。

什么是 PHP 数组

数组是复杂的变量,允许我们在单个变量名下存储多个值或一组值。假设你想在 PHP 脚本中存储颜色。在变量中逐个存储颜色可能如下所示:

<?php
$color1 = "Red";
$color2 = "Green";
$color3 = "Blue";
?>

但是,如果你想在变量中存储一个国家的州或城市名称,那么这次不仅仅是三个。将每个城市名称存储在单独的变量中是相当困难,也是一个糟糕的点子。这里数组开始发挥作用。

PHP 中的数组类型

你可以创建三种类型的数组。这些是:

  • 索引数组 - 带数字键的数组。
  • 关联数组 - 每个键都有自己特定值的数组。
  • 多维数组 - 包含一个或多个数组的数组。

索引数组

索引或数字数组使用数字索引存储每个数组元素。以下示例显示了创建索引数组的两种方法,最简单的方法是:

<?php
// Define an indexed array
$colors = array("Red", "Green", "Blue");
?>

注意: 在索引或数字数组中,索引会自动分配并以 0 开头,值可以是任何数据类型。

这相当于以下示例,其中手动分配了索引:

<?php
$colors[0] = "Red"; 
$colors[1] = "Green"; 
$colors[2] = "Blue"; 
?>

关联数组

在关联数组中,分配给值的键可以是任意的和用户定义的字符串。在以下示例中,数组使用键而不是索引号:

<?php
// Define an associative array
$ages = array("Peter"=>22, "Clark"=>32, "John"=>28);
?>

以下示例与前面的示例等效,但显示了创建关联数组的不同方法:

<?php
$ages["Peter"] = "22";
$ages["Clark"] = "32";
$ages["John"] = "28";
?>

多维数组

多维数组是一个数组,其中每个元素也可以是一个数组,子数组中的每个元素可以是一个数组,或者进一步包含自身内的数组,依此类推。多维数组的示例如下所示:

<?php
// Define a multidimensional array
$contacts = array(
    array(
        "name" => "Peter Parker",
        "email" => "peterparker@mail.com",
    ),
    array(
        "name" => "Clark Kent",
        "email" => "clarkkent@mail.com",
    ),
    array(
        "name" => "Harry Potter",
        "email" => "harrypotter@mail.com",
    )
);
// Access nested value
echo "Peter Parker's Email-id is: " . $contacts[0]["email"];
?>

查看数组结构和值

你可以使用两个语句之一来查看任何数组的结构和值 - var_dump()print_r()print_r() 但是,该声明提供的信息较少。请考虑以下示例:

<?php
// Define array
$cities = array("London", "Paris", "New York");
 
// Display the cities array
print_r($cities);
?>

print_r() 语句给出以下输出:

数组([0] =>伦敦[1] =>巴黎[2] =>纽约)

此输出显示数组中每个元素的键和值。要获取更多信息,请使用以下语句:

<?php
// Define array
$cities = array("London", "Paris", "New York");
 
// Display the cities array
var_dump($cities);
?>

var_dump() 语句给出以下输出:

array(3){[0] => string(6) London [1] => string(5) Paris [2] => string(8)“New York”}

除了键和值之外,此输出还显示每个元素的数据类型,例如 6 个字符的字符串。在下一章中,你将学习如何对数组元素进行排序。

你将在后面的章节中学习如何遍历数组的值。