PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。由于数组元素的值也可以是另一个数组,树形结构和多维数组也是允许的。
介绍
在 PHP 中,有三种数组类型:
- 索引数组 - 带有数字索引的数组
- 关联数组 - 带有指定键的数组
- 多维数组 - 包含一个或多个数组的数组
可以用 array() 语言结构来新建一个数组。它接受任意数量用逗号分隔的 键(key) => 值(value)对。
就像这样:
array(
key => value,
...
)
// 键(key)可是是一个整数 integer 或字符串 string
// 值(value)可以是任意类型的值
最后一个数组单元之后的逗号可以省略。通常用于单行数组定义中,例如常用 array(1, 2) 而不是 array(1, 2, )。对多行数组定义通常保留最后一个逗号,这样要添加一个新单元时更方便。
自 5.4 起可以使用短数组定义语法,用 [] 替代 array()。
索引数组
有两种创建索引数组的方法:
索引是自动分配的(索引从 0 开始):
$cars = array("Volvo","BMW","SAAB");
或者也可以手动分配索引:
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="SAAB";
关联数组
关联数组是使用您分配给数组的指定键的数组。
有两种创建关联数组的方法:
$age = array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
或者:
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
多维数组
数组中嵌套着数组,就像这样:
$fruits = array(
"fruits" => array(
"a" => "orange",
"b" => "banana",
"c" => "apple"
),
"numbers" => array (
1,2,3,4,5,6
),
"holes" => array (
"first",
5 => "second",
"third"
)
);
小实践
打开之前的 index.php
的文件,编辑内容为:
<?php
// 定义了一个由多个名称组成的数组
$names = [
"Jack",
"Cindy",
"White",
"Tony",
"Mary"
];
// 循环遍历打印输出这个数组中的名称
foreach ($names as $name) {
echo $name . "<br>";
}
// 更漂亮大打印出数组的内容
echo '<pre>';
var_dump($names);
echo '</pre>';
$person = [
'age' => 31,
'hair' => 'brown',
'career' => 'Web Developer'
];
require "index.view.php";
编辑 index.view.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<ul>
<?php foreach($person as $feature) : ?>
<li><?= $feature; ?></li>
<?php endforeach; ?>
</ul>
</body>
</html>
打开终端,进入文件所在目录执行:php -S localhost:8000
打开浏览器访问:http://localhost:8000
网页输出效果如下:
Jack
Cindy
White
House
Mary
array(5) {
[0]=>
string(4) "Jack"
[1]=>
string(5) "Cindy"
[2]=>
string(5) "White"
[3]=>
string(4) "Tony"
[4]=>
string(4) "Mary"
}
31
brown
Web Developer
更多
官方手册
PHP 手册: 数组
当然你也会了解到更多数组这种数据结构相关的 PHP 函数。
数组函数