PHP编程基础与实例教程第二版.ppt
《PHP编程基础与实例教程第二版.ppt》由会员分享,可在线阅读,更多相关《PHP编程基础与实例教程第二版.ppt(48页珍藏版)》请在三一办公上搜索。
1、PHP编程基础与实例教程第二版PHP Fundamentals&Practices2nd Edition,第 5 章 PHP数组,主讲:孔祥盛,本章大纲,5-1 数组的基本概念5-2 一维数组的创建5-3 多维数组5-4 数组处理函数及应用,5-1 数组的基本概念,1.为什么引入数组 使用标量数据类型定义的变量只能存储单个“数据”,仅依靠标量数据类型远不能解决现实生活中的一些常见问题,例如一个设置个人信息的页面如图所示:,5-1 数组的基本概念,2.数组的分类 一维数组 二维数组 多维数组,5-2 一维数组的创建,1.直接将变量声明为数组元素 一个变量声明为一个数组元素有三种方法:第一种方法:
2、不指定数组元素的“键”示例程序:$characters=humour;第二种方法:将数组元素的“键”指定为某个整数示例程序:$interests2=music;第三种方法:将数组元素的“键”指定为某个字符串示例程序:$colorsred=red;,例如程序createArray2.php,5-2 一维数组的创建,2.使用array()语言结构创建数组 PHP提供了 array()语言结构创建数组,array()语言结构接受一定数量用逗号分隔的 key=value 参数对,这样可以一次性地为数组添加多个元素(若key省略,则key值为整数)。例如程序createArray4.php。,red,g
3、reen,3=white,5);print_r($colors);/输出:Array(red=red 0=green 3=white 4=5)?,5-2 一维数组的创建,3.创建数组的注意事项 1如果数组元素中的“键”是一个浮点数,则“键”将被强制转换为整数(例如浮点数8.0将被强制转换为整数8);如果“键”是TRUE或FALSE,则“键”将被强制转换为整数1或0。2如果数组元素中的“键”是一个字符串,且该字符串完全符合整数格式时,数组元素的“键”将被强制转换为整数(例如 9 将被强制转换为整数9)。3由于数组元素中的“键”唯一标识一个元素,因此数组中元素的“键”不能相等(使用=比较)。如果两
4、个数组元素的“键”相等,“键”对应的“值”将被覆盖。4不要在array()语言结构中使用诸如“red=red”键值对的方式创建数组元素,也不要使用诸如$colorsred=“red”的赋值语句的方式创建数组元素,否则程序的可读性及运行效率将大打折扣。,5-2 一维数组的创建,4.数组元素“值”的访问 访问数组元素值的方法和访问变量值的方法相同:通过指定数组名并在方括号内指定“键名”的方式“访问”数组元素的“值”。使用这样的方法访问数组,不仅可以读取某个数组元素的“值”,还可以为数组添加数组元素以及修改数组元素的“值”,并可以像访问“变量”的方法访问数组元素的值。PHP提供两种变量赋值方式:传值
5、赋值和传地址赋值,对于数组同样适用。,5-3 二维数组,1.二维数组的创建 二维数组的创建方法和一维数组的创建方法相同。方法一:直接将变量声明为二维数组方法二:使用array()语言结构创建二维数组,array(studentNo=2010001,studentName=张三,studentSex=男),2010002=array(studentNo=2010002,studentName=李四,studentSex=女),2010003=array(studentNo=2010003,studentName=王五,studentSex=男),2010004=array(studentNo=2
6、010004,studentName=马六,studentSex=女);print_r($students);?,5-3 二维数组,2.二维数组元素“值”的访问 二维数组中存在两个“键”,因此访问数组元素的“值”时需要指定这两个“键”。例如:$students2010001studentName对应的值是张三,其中第一个键2010001用于指定二维数组$students中的某一“行”,第二个键studentName用于指定二维数组$students的该“行”的某一“列”。只使用第一个“键”访问数组时,访问的是二维数组中的某一“行”,该行是一个一维数组(例如$students2010001对应的
7、值是数组),5-4 数组处理函数及应用,1.快速创建数组的函数 1range()函数语法格式:array range(mixed start,mixed end)函数功能:快速创建一个从start到end范围的数字数组或字符数组。函数说明:如果 start end,序列将从 start到 end。2explode()函数语法格式:array explode(string separator,string str);函数功能:使用指定的字符串分隔符separator分割字符串str,将分割后的字符串放到数组中,并返回该数组。,5-4 数组处理函数及应用,1.快速创建数组的函数 3array_co
8、mbine()函数语法格式:array array_combine(array keys,array values)函数功能:创建一个新数组,用数组keys的值作为新数组的“键”,数组values的值作为新数组的“值”。4array_fill()函数语法格式:array array_fill(int start_key,int length,mixed value)函数功能:创建一个数组,并为该数组添加length个数组元素,数组元素的“键”从start_key处开始递增,每个数组元素的值为value。说明:length必须是一个大于零的数值,否则 PHP 会提示Warning警告信息。,5-
9、4 数组处理函数及应用,1.快速创建数组的函数 5array_pad()函数语法格式array array_pad(array arr,int pad_size,mixed pad_value)函数功能:array_pad()函数返回数组arr的一个拷贝,并用pad_value 将其填补到 pad_size 指定的长度。如果 pad_size 为正,则数组被填补到右侧,如果为负则从左侧开始填补。如果 pad_size 的绝对值小于或等于 input 数组的长度则没有任何填补。,5-4 数组处理函数及应用,2.数组统计函数 1count()函数语法格式:int count(array arr,i
10、nt mode)函数功能:统计并计算数组arr中元素的个数。如果数组arr是多维数组,可将mode 参数的值设为常量COUNT_RECURSIVE(或整数1),计算数组arr中所有元素的个数;mode 的默认值是 0。该函数的别名函数为sizeof()。2max()函数语法格式:mixed max(array arr,array.)函数功能:统计并计算数组arr中元素的最大值。说明:PHP 会将非数值的字符串当成0处理,但如果这个正是最大的数值则仍然会返回一个字符串。如果多个数组元素的值为 0 且是最大值,函数会返回其中数值的 0,如果数组元素中没有数值的 0,则返回按字母表顺序最大的字符串。
11、,5-4 数组处理函数及应用,2.数组统计函数 3min()函数语法格式:mixed min(array arr,array.)函数功能:统计并计算数组arr中元素的最小值。说明:PHP 会将数组arr中的字符串当成 0处理,如果字符串正是数组arr中最小的数值,则仍然会返回一个字符串;min()函数返回一个字符串时,该字符串为数组中顺序靠前的字符串。4array_sum()函数语法格式:number array_sum(array arr)函数功能:统计并计算数组arr中的所有元素值的和,array_sum()返回整数或浮点数。说明:PHP 会将数组arr中的非数值类型的元素值自动类型转换为
12、整数或浮点数。,5-4 数组处理函数及应用,2.数组统计函数 5array_product()函数语法格式:number array_product(array arr)函数功能:统计并计算数组arr中所有元素值的乘积,该函数返回整数或浮点数。说明:PHP 会将数组arr中的非数值类型的数据自动类型转换为整数或浮点数。6array_count_values()函数语法格式:array array_count_values(array arr)函数功能:统计并计算数组arr中所有元素的值出现的次数。,5-4 数组处理函数及应用,2.数组统计函数 实训1:数组的遍历 访问数组的所有元素的过程称为数
13、组的遍历,使用数组统计count()函数和for循环语句可以遍历连续整数“键”的数组。例如程序ergodic1.php,该程序的运行结果如图所示。,;?,5-4 数组处理函数及应用,3.数组指针函数 每一个PHP数组在创建之后都会自动建立一个“内部指针系统”:每个元素有一个“内部指针”(pointer)指向下一个元素;并且“内部指针系统”会为每一个PHP数组自动建立一个“当前指针”(current)指向数组的第一个元素,图5-24是程序createArray2.php产生的数组指针结构图。,5-4 数组处理函数及应用,3.数组指针函数 1key()函数语法格式:mixed key(array&
14、arr)函数功能:返回数组arr中“当前指针”所指元素的“键”名。说明:该函数并不移动“当前指针”,也不会修改数组arr的内部结构。2current()函数语法格式:mixed current(array&arr)函数功能:返回数组arr中“当前指针”所指元素的“值”。说明:current()函数有个别名pos。该函数并不移动“当前指针”,也不会修改数组arr的内部结构。,5-4 数组处理函数及应用,3.数组指针函数 3next()函数语法格式:mixed next(array&arr)函数功能:移动数组arr“当前指针”(current),使“当前指针”(current)指向数组arr的下一
15、个元素;然后返回“当前指针”(current)所指的元素“值”。说明:当“当前指针”(current)指向数组的最后一个元素时,使用next()函数移动“当前指针”(current)后,“当前指针”(current)为“空”,并且“当前指针”(current)指向的元素“值”为FALSE。,5-4 数组处理函数及应用,3.数组指针函数 4end()函数语法格式:mixed end(array&arr)函数功能:移动数组arr“当前指针”(current),使“当前指针”(current)指向数组arr最后一个元素;然后返回“当前指针”(current)所指的元素“值”。,5-4 数组处理函数及
16、应用,3.数组指针函数 5prev()函数语法格式:mixed prev(array&arr)函数功能:移动数组arr“当前指针”(current),使“当前指针”(current)指向数组arr上一个元素;然后返回“当前指针”(current)所指的元素“值”。说明:当“当前指针”(current)为“空”时,使用prev()函数移动“当前指针”(current)后,“当前指针”(current)还为“空”,并且“当前指针”(current)指向的元素“值”为FALSE。,5-4 数组处理函数及应用,3.数组指针函数 6reset()函数语法格式:mixed reset(array&arr)
17、函数功能:移动数组arr“当前指针”(current),使“当前指针”(current)指向数组arr的第一个元素;然后返回“当前指针”(current)所指的元素“值”。,5-4 数组处理函数及应用,3.数组指针函数 7each()函数语法格式:array each(array&arr)函数功能:以数组形式返回“当前指针”(current)所指的元素(包括“键”和“值”),然后移动数组arr“当前指针”(current),使“当前指针”指向数组arr下一个元素。说明:该函数返回的数组中共有四个元素(“键值对”),四个元素的“键”名分别为:0,1,key 和 value,“键”名为0 和 ke
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP 编程 基础 实例教程 第二

链接地址:https://www.31ppt.com/p-6514695.html