零点起飞学PHP之数组

上传人:ji****72 文档编号:51939800 上传时间:2018-08-17 格式:PPTX 页数:61 大小:486.64KB
返回 下载 相关 举报
零点起飞学PHP之数组_第1页
第1页 / 共61页
零点起飞学PHP之数组_第2页
第2页 / 共61页
零点起飞学PHP之数组_第3页
第3页 / 共61页
零点起飞学PHP之数组_第4页
第4页 / 共61页
零点起飞学PHP之数组_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《零点起飞学PHP之数组》由会员分享,可在线阅读,更多相关《零点起飞学PHP之数组(61页珍藏版)》请在金锄头文库上搜索。

1、第5章 数组 数组是将多个数据集合在一起的一个形式。它在PHP 中是非常强大的一种数据类型,可以用来存储多种类 型的多个数据。本章将首先介绍数组的优势,然后循 序渐进地从简单创建一个数组、修改数组中的数据到 常用的遍历数组再到灵活操作数组中指针的形式来学 习。从而让读者很好地掌握PHP的数组。5.1 使用数组 数组在一些方面有其独特的优势。本节将介绍数组使 用方法的基础知识,以及关联数组和索引数组的使用 和应用方面。从而让读者对如何正确使用数组有一个 明确的了解。5.1.1 使用数组的优势 数组的优势在于可以集中处理大批量的数据,而不需 要每次更换变量名。由于是集中处理数据,所以处理 方式上有

2、很多优化和改进。PHP中提供了专门的数组 运算符以及非常多的操作数组的函数,因此PHP中的 数组使用可以非常灵活。当然灵活性的提高是建立在 不同细节上的,因此我们就需要从细节讲起,让读者 了解数组的每一个细节,然后根据需要来灵活操作数 组。5.1.1 使用数组的优势 我们不妨来设想下面这个情景:如果要求你统计一个班级中成绩的平均分, 那么我们必须要声明等于学生个数的变量来存储每个人的成绩,然后再将所 有成绩相加后再取得平均分简略的代码可以写成如下的形式: 01 我们可以看到,这种形式需要声明很多变量来存储学生的成绩,5.1.1 使用数组的优势 而使用数组实现同样的功能,我们可以把程序改为如下所

3、示的形 式: 01 使用数组实现相同功能的代码精简度是显而易见的,当然这里只 是作为一个演示,读者此刻无需理解代码中使用的函数。5.1.2 数组使用基础 在上一小节中我们已经了解了数组所具备的优势,本 节我们就来讲解使用数组的基础知识,主要包括定义 数组、访问数组元素、添加/修改数组元素和删除数组 元素的知识。1.定义数组 PHP中定义数组使用的是array结构,它的语法形式如下所 示: array array (mixed values ) 这是定义数组的最基本形式,array的参数被称元素可以是0 个或者多个不同类型的数据,每个参数为“索引=值”的键 值对形式。如果索引被省略则由系统自动添

4、加从0开始的整 数索引,这种由系统指定索引的函数被称为索引数组。数 组中元素的个数被称为数组的长度,它会随着元素的增减 而变化。下面就来定义一个数组: $arr=array(98,hello,67,A,85,NULL); 上面的代码中$arr是数组的名称,用来保存定义的数组。该 数组的长度为6。2.访问数组元素 访问数组中的元素是通过数组名指定索引来完成的, 语法形式如下所示: 数组名索引 语法中的索引被放在方括号中,可以为变量、常量或 者表达式。2.访问数组元素 【示例5-1】演示访问数组中的元素。 从运行结果可以看到代码正确访问到了数组中的元 素。 我们还可以把一个变量作为数组的下标来访问

5、数组的 元素,形式如下所示: 数组名变量名2.访问数组元素 【示例5-2】演示使用变量作为数组下标来访问数组中 的元素。 从运行结果可以看到,我们可以采用这种方式来正确 输出数组对应的元素。我们还可以将一个表达式作为 数组的下标来访问数组的元素。 【示例5-3】演示使用表达式作为数组下标来访问数组 中的元素。 以上代码中我们只使用了简单的示例来讲解,读者可 以在实际使用时候融会贯通。5.2 数组常用操作 本节将要学习的是常用的数组操作,主要包括遍历、比 较、合并、分割、排序和过滤数组元素。在学习这些知识 之前我们首先需要认识三个函数count、print_r和var_dump ,他们的原型如下

6、所示: int count ( mixed $var , int $mode ) bool print_r ( mixed $expression , bool $return ) void var_dump ( mixed $expression , mixed $expression , $. ) count函数用来计算数组中元素的个数或者对象中属性的个 数,这里我们只用来计算数组元素的个数。print_r函数用来 打印变量的详细信息。var_dump函数用来打印一个或多个 表达式的结构信息,包括表达式的类型与值。5.2.1 for循环遍历数组 遍历数组即依次对数组中的每个元素进行访问且仅

7、访 问一次。我们知道默认数组的索引值是从0开始递增的 ,而且可以将变量作为索引来访问数组的元素。因此 ,我们完全可以使用循环递增一个作为索引的变量来 遍历一个数组。 【示例5-4】演示使用for循环遍历输出一个数组中的元 素。 结合代码我们可以看到,通过简单的for循环语句遍历 输出了数组的所有元素。5.2.2 合并数组 合并数组即为将两个或者多个数组合并为一个数组。 合并数组有对应的运算符和多个函数可以完成,他们 的区别就在于使用不同的规则对数组进行合并。1.使用联合运算符合并数 组 PHP中有专门的数组运算符,用来合并数组的运算符 称为联合运算符,它的符号与加法的符号相同。使用 的形式如下

8、: $arr = $arr1 + $arr2 它会将右操作数中与左操作数中相同索引的元素去除 后将剩余元素加在左操作数后而不会发生覆盖。 【示例5-5】演示数组联合运算符(+)的使用。 从以上输出结果就可以看到,第一个数组中的元素并 不会被覆盖。2.使用系统函数合并数组 基本的合并数组函数是array_merge函数,它可以将一个或 者多个数组合并起来,将后一个数组的元素加在前一个数 组的末尾。它的函数原型如下: array array_merge ( array $array1 , array $array2 , array $. ) 参数array1、array2为将要合并的数组,该函数的

9、特点是 可以一次合并多个数组。 【示例5-6】演示使用array_merge函数合并多个数组。 在上面的代码中分别使用array_merge函数合并两个和三个 数组,并输出各个数组的详细信息。这里需要读者了解的 是该函数不会覆盖数组的元素。5.2.3 获取数组的交集和 差集 获取数组的交集即为获取指定数组与其他数组中相同的元 素;获取数组的差集即为获取指定数组与其他数组中不同 的元素。在PHP中提供了获取交集和差集的多个函数,这 里只讲解最主要的两个,他们的函数原型如下: array array_intersect ( array $array1 , array $array2 , array

10、 $ . )/获取数组的交集 array array_diff ( array $array1 , array $array2 , array $ . ) /获取数组的差集 这两个函数均可接受多个参数,而且均会返回函数中参数 array1与其他数组的交集(差集)。这里我们也可借用数学 中的题目来学习这个函数。5.2.3 获取数组的交集和 差集 例如有两个数组$arr1和$arr2用来保存两组参加知识竞赛学生的学 号。前提是一个学生可以参加多项竞赛,那么我们就可以用以上 函数来取得两项竞赛都参加的学生(交集),同样也可以取得一 组中只参加一项竞赛的学生。 【示例5-7】使用array_inter

11、sect函数和array_diff函数获取学生数组 的交集和差集并输出。 与数学中只能获取数值的交集与差集不同的是,PHP中可以使用 以上两个函数来获取其他类型元素的交集和差集。 【示例5-8】演示使用array_intersect函数和array_diff函数获取其他 类型数组的交集和差集。 使用array_intersect函数和array_diff函数获取多个数组的交集和差 集的使用与获取两个数组的交集和差集类似,这里就不再详细讲 解。5.2.4 数值元素相关计算 在使用数组的过程中很多时候需要对数组中的值进行 求值运算。在本章开头的代码中,就使用了array_num 来计算数组中元素的

12、和。除了计算和的函数外还提供 了array_product函数来计算数组中元素的乘积。本节我 们就来介绍这两个系统函数。1.array_sum array_sum函数用来计算数组中所有值的和,它的函数 原型如下: number array_sum ( array $array ) 参数array即为要求和的数组。 注意:array_sum函数会将数字字符串转换为数值,将 布尔值TRUE转换为1,而把其他不能转换为数值的通 常转换为0来计算。 【示例5-9】演示使用array_sum计算数组中元素的值。2.array_product array_product函数用来计算数组中所有值的乘积,它的

13、 函数原型如下: number array_product ( array $array ) 参数array即为要求乘积的数组。 注意:与array_sum函数类似的,array_product函数会 将数字字符串转换为数值,将布尔值TRUE转换为1, 而把其他不能转换为数值的通常转换为0来计算。因此 对于含有不能转换为数值的元素的数组使用该函数是 无实际意义的,因为任何值与0的乘积都为0。2.array_product 【示例5-10】演示使用array_product函数计算数组中元 素的乘积。 从运行结果我们可以看到代码第5行求取数组$arr2中元 素的乘积得到的结果为0,这是因为在代码

14、第3行中的 数组元素“hello”会被转换为0导致的,因此我们实际应 用中应该尽量避免这种情况。5.3 增加与删除数组元素 在PHP中,数组定义后,通常不是一成不变。在程序 执行过程中,数组的元素可能被增加、删除和修改, 这也是PHP的数组之所以非常强大的一个原因。下面 就来详细介绍这些知识。5.3.1 添加/修改数组元 素 在有些情况下,数组中的元素并不是在定义数组时候就可以确定 的,通常会在程序运行时动态地向数组中增加元素。为数组添加 元素的语法类似于赋值,如下所示: 数组名索引 = 值 为数组增加元素需要使用未在数组中使用的索引或者不指定索引 ,不指定索引添加的数组索引同样由系统指定,指

15、定规则为获取 当前数组中最大整数索引值并在其基础上加1作为新元素的索 引。 在接下来的示例中将用到rand函数,它用来生成随机数,函数原 型如下: int rand ( int $min , int $max ) 参数min和max分别用来指定生成的随机数的最小和最大范围。5.3.1 添加/修改数组元 素 【示例5-11】演示为数组添加元素。 本段代码需要读者理解代码中指定索引和不指定索引 的形式下元素索引的变化,当代码第9行为键指定为8 的时候,第11行添加的元素的键就为会以8作为基础递 增。 修改数组中的元素只要访问到指定的元素,然后为其 重新赋值即可,语法形式如下: 数组名索引 = 值 【示例5-12】演示修改数组中的元素。 从输出结果我们可以明确看到数组被正确修改。5.3.2 删除数组/数组中 的元素 当数组中的元素不再需要的时候我们就可以删除它。同样 的当整个数组不再需要的时候我们同样可以删除整个数 组。完成这这些操作可以使用的函数是unset,它用来释放 指定的变量,它的函数原型如下: void unset ( mixed $var , mixed $var , $. ) unset可以接受多个参数,参数var即为需要释放的变量,在 本章学习中我们用来释放数组中的元素和数组。 【示例5-13】演示使用unset函数释放数组元素和数组。 从运行结果中我们可以

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号