1 数组简介
- 定义:数组是一个能在单个变量中存储多个值的特殊变量。
- 本质:PHP中的 array 实际上是一个有序映射。
- 映射是一种把 values 关联到 keys 的类型。此类型针对多种不同用途进行了优化; 它可以被视为数组、列表(向量)、哈希表(映射的实现)、字典、集合、堆栈、队列等等。
- 由于 array 的值可以是其它 array 所以树形结构和多维 array 也是允许的。
- 数组元素:除了对象,可存放任意类型的数据,包括数组。
- 数组按键值对命名方式可以分为两类:
- 数值数组:键值是整型整数,也称为索引数组。
- 关联数组:键值是具有语义的字符串。
2 数组相关操作
2.1 数值数组的创建与访问
- 有两种方法创建数值数组,一种是人工分配ID键,另一种是自动分配ID键(从0开始分配)。
- 访问数值数组,采用数值下标的形式进行访问。
- 遍历数值数组可以采用for循环或foreach循环。两种循环语句用法可参考文章《条件控制语句》
- 语法例子:
<?php
/* 人工分配ID键 */
$cars1[0]="Volvo1";
$cars1[1]="BMW1";
$cars1[2]="Toyota1";
/* 自动分配ID键*/
$cars2=array("Volvo2","BMW2","Toyota2");
/* 访问输出相应数据 */
echo "I like " . $cars1[0] . ", " . $cars1[1] . " and " . $cars1[2] . ".";
echo "<br>";
echo "I also like " . $cars2[0] . ", " . $cars2[1] . " and " . $cars2[2] . ".";
echo "<hr>";
/* for循环输出$cars1 */
for($x=0;$x<count($cars1);$x++)
{
echo $cars1[$x];
echo "<br>";
}
/* forecah循环输出$cars2 */
foreach ($cars2 as $value)
{
echo $value."<br>";
}
?>
2.2 关联数组的创建与访问
- 关联数组的创建、访问与数值数组均类似。
- 关联数组相比于数值数组,更适用于值与键之间有明显对应关系的数据。
- 语法:
<?php
/* 逐个键值对赋值 */
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
/* 自动分配ID键*/
$high=array("Peter"=>"171","ben"=>"172","Joe"=>"173");
/* 访问输出相应数据 */
echo "Peter is " . $age['Peter'] . " years old.";
echo "<br>";
echo "Peter is " . $high['Peter'] . "cm high.";
echo "<hr>";
/* forecah遍历输出年龄 */
foreach ($age as $key => $value)
{
echo $key."'s age is ".$value.".<br>";
}
?>
2.3 数组的打印
- 如果想要打印输出整个数组,不能使用echo关键字,而是使用print_r()。
- 例子:
<?php
$high=array("Peter"=>"171","ben"=>"172","Joe"=>"173");
print_r($high)
?>
2.4 数组内置函数
使用PHP内置的数组处理函数,将使得数据处理更加高效、代码更加简介。常用的内置函数有:
函数名 | 作用 |
---|---|
array_keys() 函数 | 返回包含数组中所有键名的一个新数组 |
array_merge() 函数 | 用于把一个或多个数组合并为一个数组。 |
array_key_exists() 函数 | 检查某个数组中是否存在指定的键名 |
array_rand() 函数 | 返回数组中的一个随机键名,或者如果指定函数返回键名不只一个,则返回一个包含随机键名的数组。 |
array_search() 函数 | 在数组中搜索某个键值,并返回对应的键名。 |
array_sum() 函数 | 返回数组中所有值的和。 |
array_product() 函数 | 计算并返回数组的乘积。 |
3 总结
- 掌握两种数组的创建、访问修改、遍历的方法;
- 了解数组操作函数的查询方法。
参考文献
- 《Array相关函数》用于查询可以应用操作数组的函数。