数组是将多个数据集合在一起的一个形式。它在PHP中是非常强大的一种数据类型,可以用来存储多种类型的多个数据。陌小雨将首先介绍数组的优势,然后循序渐进地从简单创建一个数组、修改数组中的数据到常用的遍历数组再到灵活操作数组中指针的形式来学习。相信我们都可以很好地掌握PHP的数组。
1、数组的优势
数组的优势在于可以集中处理大批量的数据,而不需要每次更换变量名。由于是集中处理数据,所以处理方式上有很多优化和改进。PHP中提供了专门的数组运算符以及非常多的操作数组的函数,因此PHP中的数组使用可以非常灵活。当然灵活性的提高是建立在不同细节上的,因此我们就需要从细节讲起,了解数组的每一个细节,然后根据需要来灵活操作数组。
我们不妨来设想下面这个情景:如果要求你统计一个班级中成绩的平均分,那么我们必须要声明等于学生个数的变量来存储每个人的成绩,然后再将所有成绩相加后再取得平均分简略的代码可以写成如下的形式:
<?php
$stu01=67; //声明多个变量存储学生成绩
$stu02=77;
$stu03=96;
...
$stun=100;
$average=($stu01+$stu02+stu03+...+$stun)/n; //求取平均值
?>
我们可以看到,这种形式需要声明很多变量来存储学生的成绩,而使用数组实现同样的功能,我们可以把程序改为如下所示的形式:
<?php
$stu=array(67,77,96,...,100); //定义一个数组
$total=array_sum($stu); //求取总成绩
$average=$total/n; //求取平均值
?>
使用数组实现相同功能的代码精简度是显而易见的,当然这里只是作为一个演示,我们此刻无需理解代码中使用的函数。
2、定义数组
PHP中定义数组使用的是array结构,它的语法形式如下所示:
array array ([mixed values ]… )
这是定义数组的最基本形式,array的参数被称元素可以是0个或者多个不同类型的数据,每个参数为“索引=>值”的键值对形式。如果索引被省略则由系统自动添加从0开始的整数索引,这种由系统指定索引的函数被称为索引数组。数组中元素的个数被称为数组的长度,它会随着元素的增减而变化。下面就来定义一个数组:
$arr=array(98,’hello’,67,’A’,85,NULL);
上面的代码中$arr是数组的名称,用来保存定义的数组。该数组的长度为6。
3、访问数组元素
访问数组中的元素是通过数组名指定索引来完成的,语法形式如下所示:
数组名[索引]
语法中的索引被放在方括号中,可以为变量、常量或者表达式。
<?php
$arr=array(98,'hello',67,'A',85,NULL); //定义一个数组
echo "输出第一个元素:{$arr[0]}"; //输出数组的元素
echo "<br />输出第二个元素:{$arr[1]}";
echo "<br />输出第三个元素:{$arr[2]}";
echo "<br />输出第四个元素:{$arr[3]}";
echo "<br />输出第五个元素:{$arr[4]}";
echo "<br />输出第六个元素:{$arr[5]}";
?>
代码运行结果:
输出第一个元素:98
输出第二个元素:hello
输出第三个元素:67
输出第四个元素:A
输出第五个元素:85
输出第六个元素:
值得注意的是:数组的默认索引是从0开始的,在输出语句中使用花括号可以输出变量的值而不是以字符串输出。
我们还可以把一个变量作为数组的下标来访问数组的元素,形式如下所示:
数组名[变量名]
<?php
$arr=array(98,'hello',67,'A',85,NULL); //定义一个数组
$x=0; //定义三个作为下标的变量
$y=3;
$z=5;
echo "下标为{$x}的元素为{$arr[$x]}。<br />"; //输出对应下标及元素值
echo "下标为{$y}的元素为{$arr[$y]}。<br />";
echo "下标为{$z}的元素为{$arr[$z]}。<br />";
$x=2; //为变量x重新赋值
echo "下标为{$x}的元素为{$arr[$x]}。"; //输出对应下标及元素值
?>
代码运行结果:
下标为0的元素为98。
下标为3的元素为A。
下标为5的元素为。
下标为2的元素为67。
从运行结果可以看到,我们可以采用这种方式来正确输出数组对应的元素。我们还可以将一个表达式作为数组的下标来访问数组的元素。
<?php
function num(){ //定义函数
$x=7;
$y=6;
return $x-$y; //返回值为7
}
$arr=array(98,'hello',67,'A',85,NULL); //定义一个数组
$a=1; //定义两个变量
$b=3;
echo '数组下标为4的元素为:'.$arr[$a+$b]; //表达式作为下标
echo '<br />数组下标为1的元素为:'.$arr[num()]; //表达式作为下标
?>
代码运行结果:
数组下标为4的元素为:85
数组下标为1的元素为:hello
以上代码中我们只使用了简单的示例来讲解,大家可以在实际使用时候融会贯通。