数组是一种类似于数字和字符串的数据类型,可以管理由键值对组成的多个元素。在本文中,我将解释如何在 PHP 中使用数组。
首先,让我们看看如何使用数组。例如,考虑为三个人保存成绩的情况。
$chengji1 = 80;
$chengji2 = 95;
$chengji3 = 68;
我们准备三个变量,在每个变量中存储成绩值。
这三个变量的目的相似,但它们都是独立的变量。如果要打印每个存储的值,则需要编写如下:
$chengji1 = 80;
$chengji2 = 95;
$chengji3 = 68;
print $chengji1;
print $chengji2;
print $chengji3;
如果存3个值还可以,但是如果有100个,就要排100条打印语句。
数组在这种情况下很有用。首先,让我们使用数组重写它。
$chengji[0] = 80;
$chengji[1] = 95;
$chengji[2] = 68;
print $chengji[0];
print $chengji[1];
print $chengji[2];
准备单个数组「chengji」,而不是一个变量。您可以在单个数组中存储任意数量的值。要从数组中检索值,将具有唯一值的键与值分开存储。存储时,可以将key和value作为pair进行存储,检索时,可以通过指定key来检索指定的值。
那么与变量相比有什么优势呢?使用为数组提供的迭代、语法和函数等,可以使用存储的值高效地操作数组。例如,结合重复处理可以描述如下。
$chengji[0] = 80;
$chengji[1] = 95;
$chengji[2] = 68;
for ($i = 0; $i < 3; $i++){
print $chengji[$i];
}
整数和字符串都可以用作数组键,这将在下一节详细说明。如果您使用整数作为键,则可以通过使用 for 语句更改键的值来按顺序检索值。使用这种方法,即使有100个存储值,你所要做的只是改变for语句的条件表达式。
您还可以使用为数组提供的 foreach 语句。
$chengji[0] = 80;
$chengji[1] = 95;
$chengji[2] = 68;
foreach ($chengji as $val){
print $val;
}
当管理以相同方式使用的多个值时,数组是有效的。反过来,在一个数组中管理完全不同目的的值也没有多大意义。
然后,我们将从下一节开始检查数组的详细用法。
示例代码
让我们用一个简单的程序来试试吧。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHP TES</title>
</head>
<body>
<p>PHP TEST</p>
<p>
<?php
$chengji[0] = 80;
$chengji[1] = 95;
$chengji[2] = 68;
for ($i = 0; $i < 3; $i++){
print $chengji[$i].'<br />';
}
?>
</p>
</body>
</html>
如果将上述文件放在WWW服务器的文档根目录下,用浏览器访问,将显示如下
现在让我们看看如何使用数组。要使用数组,请编写:
$数组变量名
数组和变量一样,不需要提前声明。当您尝试将值存储在不存在的数组中时,会自动创建一个数组。数组变量用“$”+数组变量名表示,可以作为数组名称的规则和变量名的规则是一样的,以下划线或字母开头,以下划线,数字,字母组成的字符串。
数组管理多条数据,每条数据称为一个元素。所以数组包含多个元素。元素存储键值对。键是从数组中取值的,同一个键不能存在于一个数组中。通过指定键,您可以识别元素并提取元素中包含的值。
数组在元素中存储值并从元素中检索值。要表示数组中的特定元素,请在数组变量后方括号中指定键。
$数组变量名[key]
要创建一个新元素并存储值:
$数组变量名 [key] = value;
如果指定数组中已存在的键,则存储由该键确定的元素的新值。如果您指定一个不存在的键,则创建一个新元素并存储该值。
要从数组中提取值,请按如下方式编写元素。
$变量 = $数组变量名 [key];
在这种情况下,与指定键对应的元素中包含的值存储在变量中。
您可以指定整数或字符串,但我们将在下一节中详细介绍如何指定KEY
$chenji['english'] = 72;
$chenji['math'] = 82;
$name[0] = 'Yuhua';
$name[1] = 'Jiangming';
print $name[0];
print_r 函数
print_r 函数对于检查数组中包含的变量值很有用。如果您指定一个数组变量作为该函数的参数,它将输出包含在该数组中的元素列表。
print_r($数组变量名);
请记住,当你想在开发阶段检查数组的内容时,它经常被使用。
例如:
$chenji['english'] = 72;
$chenji['math'] = 82;
print_r($chenji);
请检查以下示例以查看其输出方式。
示例代码
让我们用一个简单的程序来试试吧。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>PHP TEST</title>
</head>
<body>
<p>PHP TEST</p>
<pre>
<?php
$chenji[0] = 82;
$chenji[1] = 91;
$chenji[2] = 65;
print_r($chenji);
?>
</pre>
</body>
</html>
如果将上述文件放在WWW服务器的文档根目录下,用浏览器访问,将显示如下。
print_r 以 [key] => value 格式输出每个元素。
必须指定键才能在数组中创建元素或从元素中检索值。PHP 中的数组可以使用整数和字符串作为键。
为键指定整数时,除了正数之外,还可以指定负数。
$var[0] = 14;
$var[2] = 'Tokyo';
$var[-4] = 8400;
创建多个元素时,键不必是连续整数。
但是为键指定字符串时,必须用单引号括起来。
$var['yamada'] = 86;
$var["endou"] = 75;
$var['aichi'] = 'nagoya';
如果您指定一个字符串而不用引号括起来,则不会发生错误,但会被视为指定了一个未定义的常量。请务必用单引号括起来。
请注意,如果键是由表示整数的数字组成的字符串,它将被视为指定了整数。请参见以下示例。
$var['8'] = 75;
在这种情况下,为键指定了一个字符串,但由于该字符串表示整数 8,因此它被视为好像指定了一个整数键,如下所示。
$var[8] = 75;
即使key是一个由数字组成的字符串,如果它是一个以0开头的字符串,比如“08”,key的字符串“08”。
$var['08'] = 75;
本例中的键只是字符串“08”。
使用变量或常量指定键
除了直接将整数和字符串写成键外,还可以指定存储整数和字符串的变量。
$key = 'apple';
$var[$key] = 120;
此外,当字符串被指定为关键字时,还可以在字符串中描述变量并执行变量扩展。
$key = 'apple';
$var["price_$key"] = 120;
也可以使用定义为键的常量来指定。
define("INDEX_KEY", 9);
$var[INDEX_KEY] = 115;
示例代码
让我们用一个简单的程序来试试吧。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>PHP TEST</title>
</head>
<body>
<p>PHP TEST</p>
<pre>
<?php
$key = 'apple';
$var["price_$key"] = 120;
define("PURPLE", 'price_purple');
$var[PURPLE] = 86;
print_r($var);
?>
</pre>
</body>
</html>
如果将上述文件放在WWW服务器的文档根目录下,用浏览器访问,将显示如下。
为了将新元素添加到数组,需要提前指定键和值。可以为键指定整数或字符串,但也可以省略键。例如,如果省略Key,则编写如下。
$var[] = 99;
$var[] = 'Shanghai';
如果省略键,则会自动分配一个整数键。给定的整数键是一个加上当前分配为键的最大整数。如果没有整型key,则从0开始赋值。
在前面的例子中,第一个元素的key是0,而下一个元素是1,因为它是当前存在的整数最大的key加1得到的整数。因此,通过print_r函数输出时,会是这样的。
Array
(
[0] => 100
[1] => Shanghai
)
在下面的例子中,整数键有7和12,但最大键为13,所以如果省略键,键将被赋予14。
$var[13] = 100;
$var['Subject'] = 72;
$var[5] = 100;
$var[] = 'Shanghai';
实际通过print_r函数输出时,变成如下。
Array
(
[13] => 100
[Subject] => 72
[7] => 100
[14] => Shanghai
)
字符串键的存在对自动分配的键没有影响。
另外,即使是整数,如果只有负整数键,自动分配的键也会是0。
$var[-3] = 75;
$var[-12] = 45;
$var[] = 28;
$var[] = 83;
实际通过print_r函数输出时,变成如下。
Array
(
[-3] => 75
[-12] => 45
[0] => 28
[1] => 83
)
用于将连续的数字键分配给整数键。
示例代码
让我们用一个简单的程序来试试吧。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>PHP TEST</title>
</head>
<body>
<p>PHP TEST</p>
<pre>
<?php
for ($i = 10; $i < 14; $i++){
$var[] = $i * 100 ;
}
print_r($var);
?>
</pre>
</body>
</html>
如果将上述文件放在WWW服务器的文档根目录下,用浏览器访问,将显示如下。
使用数组除了一个一个添加元素的方法外,还有一种方法是一次性指定并初始化要添加到数组的元素。使用 array 来初始化一个数组。
array array ([ mixed $... ] )
返回使用给定键和值初始化的数组。数组像函数一样使用,但它不是真正的函数,它是一种 PHP 语言结构。
使用它的一种方法是通过执行不带任何参数的数组来使用空数组。
$var = array();
如果您创建一个包含以下元素的数组:要通过指定元素创建数组,请按如下方式指定参数。
$var = array('Key1' => 値1, 'Key2' => 値2, ...);
为每个元素指定一个键和值对,描述方法以“key => value”的格式描述。添加多个元素时,用逗号(,)分隔。例如:
$var = array('Beijing' => '北京',
'Shanghai' => '上海',
'Qingdao' => '青岛');
*为清楚起见,每个元素都用换行符进行描述。上面相当于写:
$var['Beijing'] = '北京';
$var['Shanghai'] = '上海';
$var['Qingdao'] = '青岛;
此外,如果您不需要指定键并希望自动分配它,请仅将值描述为数组参数,如下所示。
$var = array(値1, 値2, ...);
指定键的元素和省略键的元素可以混合并在参数中指定。例如:
$var = array(10 => '北京', '上海', '青岛');
分配什么样的按键请参考 “按键自动分配”。
通过使用数组,可以简洁地描述数组中存储的元素的初始化。
示例代码
让我们用一个简单的程序来试试吧。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>PHP TEST</title>
</head>
<body>
<p>PHP TEST</p>
<pre>
<?php
$var = array('Yuhua' => 82,
'Lidong' => 76,
'Jiangming' => 64);
$var['Wangqi'] = 91;
print_r($var);
?>
</pre>
</body>
</html>
如果将上述文件放在WWW服务器的文档根目录下,用浏览器访问,将显示如下。
任何值都可以存储在元素值中。因此,除了数字、字符串等之外,还可以存储其他数组。例如,请参见以下示例。
$shenhui = array('河北省', '湖南省', '广东省', '山东省');
$city = array('北京', '青岛');
$difang = array($shenhui, $city);
在上面,分别创建数组“shenhui”和数组“city”后,创建数组“difang”,其元素以这两个数组为值。包含其他数组作为元素的数组称为二维数组。作为元素值存储的数组元素还可以存储其他数组,因此可以创建任意维数的数组。
我这次用的是数组,但是我这样写也是一样的。
$shenhui = array('河北省', '湖南省', '广东省', '山东省');
$city = array('北京', '青岛');
$pc[0] = $shenhui;
$pc[1] = $city;
现在尝试获取值。如果通过指定key获取元素,则获取元素包含的数组。要指定数组中包含为值的更多元素,请编写:
$变量1 = $数组变量[Key];
$变量2 = $变量1[array key stored as value];
首先,将数组中作为值存储的数组存储在变量中。然后,为获得的数组指定键并提取值。这种描述方法并没有错,但通常是这样写在一起的。
$変数 = $数组变量[Key][array key stored as value];
$shenhui = array('河北省', '湖南省', '广东省', '山东省');
$city = array('北京', '青岛');
$difang = array($shenhui, $city);
print $difang[0][1]; // 湖南省 と出力
print $difang[1][0]; // 北京 と出力
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>PHP TEST</title>
</head>
<body>
<p>PHP TEST</p>
<pre>
<?php
$shenhui = array('河北省', '湖南省', '广东省', '山东省');
$city = array('北京', '青岛');
$difang = array($shenhui, $city);
print_r($difang);
print '$difang[0][1] = '.$difang[0][1].'<br />';
print '$difang[1][0] = '.$difang[1][0];
?>
</pre>
</body>
</html>
如果将上述文件放在WWW服务器的文档根目录下,用浏览器访问,将显示如下。