文章教程

4.1.1数组的概念

9/17/2020 9:38:49 PM 人评论 次浏览

4.1 数组的概念和定义

本节介绍数组的基本概念以及在PHP中如何定义数组。

4.1.1 数组的概念

数组是在内存中保存一组数据的数据结构,它具有如下特性。

• 和变量一样,每个数组都有一个唯一标识它的名称。

• 同一数组的数组元素应具有相同的数据类型。

• 每个数组元素都有键(key)和值(value)两个属性。键用于定义和标识数组元素,键可以是整数或字符串;值就是数组元素对应的值。因此,数组元素就是一个“键/值对”。

• 一个数组可以有一个或多个键,键的数量也称为数组的维度。拥有一个键的数组就是一维数组,拥有2个键的数组就是二维数组,依此类推。

图4-1所示为一维数组的示意图。灰色方块中是数组元素的键,白色方块中是数组元素的值(本书以后也会使用这种形式)。数组arr中共有7个元素,它们的键分别是0、1、2、3、4、5、6。以整数为键是很常用的用法。

figure_0078_0127

图4-1 一维数组的示意图

图4-2所示为二维数组的示意图。数组arr2中共有4个元素,它们的键分别是[0][0]、[0][1]、[1][0]和[1][1]。

figure_0079_0128

图4-2 二维数组的示意图

4.1.2 定义一维数组

可以使用array()函数来定义一维数组,其基本语法结构如下:

array ( [key => ] value

, ……

)

其中,key表示数组中关键字,它可以是整数和字符串;value表示关键字key对应的值。下面是一个定义数组的例子:

$arr = array("first_element" => "CPU", 2 => "内存");

上面代码定义了一个数组变量$arr。数组$arr中包含了两个元素,分别使用字符串first_element和整数2作为键来标识。第1个数组元素的值为“CPU”,第2个数组元素的值为“内存”。

在定义数组时,也可以不指定键。此时,程序会自动使用从0开始的整数作为关键字。

【例4-1】 一个定义一维数组的例子。

$arr = array("CPU", "内存", "硬盘");

【例4-2】 例4-1的代码等同于下面的代码:

$arr = array(0 => "CPU", 1 => "内存", 2 => "硬盘");

可以通过向数组赋值的方式来添加数组元素。例如,执行下面的语句可以在数组$arr 中添加一个键为4的元素,它的值为“声卡”。

$arr[4] = "声卡";

也可以不指定键,只在数组变量后面加一对空的方括号来添加数组元素,代码如下:

$arr[] = "显卡";

执行此语句后,会在数组$arr中增加一个键为5的元素,元素值为“显卡”。此时数组arr的内容如图4-3所示。

figure_0079_0129

图4-3 数组arr的内容

调用print_r()函数可以打印数组的内容。

【例4-3】 打印数组$arr的内容。

<?PHP

$arr = array(0 => "CPU", 1 => "内存", 2 => "硬盘");

$arr[4] = "声卡";

$arr[] = "显卡";

print_r($arr);

?>

运行结果如图4-4所示。

figure_0080_0130

图4-4 例4-2的运行结果

也可以调用var_dump ()函数来打印数组的明细内容。

【例4-4】 打印数组$arr的明细内容。

<?PHP

$arr = array(0 => "CPU", 1 => "内存", 2 => "硬盘");

$arr[4] = "声卡";

$arr[] = "显卡";

var_dump($arr);

?>

运行结果如下:

array (size=5)

0 => string 'CPU' (length=3)

1 => string '内存' (length=4)

2 => string '硬盘' (length=4)

4 => string '声卡' (length=4)

5 => string '显卡' (length=4)

4.1.3 定义多维数组

可以将多维数组视为数组的嵌套,即多维数组的元素值也是一个数组,只是维度比其父数组小一。二维数组的元素值是一维数组,三维数组的元素值是二维数组,依此类推。可以使用array()函数来定义多维数组,其基本语法结构如下:

array ( [key => ] array([key => ] value )

, ……

)

其中value还可以嵌套array()函数来定义数组。

【例4-5】 一个定义二维数组的例子。

$arr2 = array( array("CPU", "内存"), array("硬盘","声卡"));

此时数组arr的内容如图4-5所示。

figure_0080_0131

图4-5 例4-5中数组arr的内容

【例4-6】 例4-5的代码等同与下面的代码:

$arr2 = array(0 => array("CPU", "内存"), 1 => array("硬盘","声卡"));

也可以通过向数组赋值的方式来创建数组并添加数组元素。

【例4-7】 例4-5的代码等同与下面的代码:

$arr2[0][0] = "CPU";

$arr2[0][1] = "内存";

$arr2[1][0] = "硬盘";

$arr2[1][1] = "声卡";

【例4-8】 不指定键,只在数组变量后面加一对空的方括号来添加数组元素,代码如下:

$arr2[0][] = "CPU";

$arr2[0][] = "内存";

$arr2[1][] = "硬盘";

$arr2[1][] = "声卡";

教程类别