PHP编程基础与实例教程第二版.ppt

上传人:sh****n 文档编号:6347675 上传时间:2020-02-23 格式:PPT 页数:48 大小:1.69MB
返回 下载 相关 举报
PHP编程基础与实例教程第二版.ppt_第1页
第1页 / 共48页
PHP编程基础与实例教程第二版.ppt_第2页
第2页 / 共48页
PHP编程基础与实例教程第二版.ppt_第3页
第3页 / 共48页
点击查看更多>>
资源描述
PHP编程基础与实例教程第二版PHPFundamentals Practices2ndEdition 第5章PHP数组 主讲 孔祥盛 本章大纲 5 1数组的基本概念5 2一维数组的创建5 3多维数组5 4数组处理函数及应用 5 1数组的基本概念 1 为什么引入数组使用标量数据类型定义的变量只能存储单个 数据 仅依靠标量数据类型远不能解决现实生活中的一些常见问题 例如一个设置个人信息的页面如图所示 5 1数组的基本概念 2 数组的分类一维数组二维数组多维数组 5 2一维数组的创建 1 直接将变量声明为数组元素一个变量声明为一个数组元素有三种方法 第一种方法 不指定数组元素的 键 示例程序 characters humour 第二种方法 将数组元素的 键 指定为某个整数示例程序 interests 2 music 第三种方法 将数组元素的 键 指定为某个字符串示例程序 colors red red 例如程序createArray2 php 5 2一维数组的创建 2 使用array 语言结构创建数组PHP提供了array 语言结构创建数组 array 语言结构接受一定数量用逗号分隔的key value参数对 这样可以一次性地为数组添加多个元素 若key省略 则key值为整数 例如程序createArray4 php red green 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 不要在array 语言结构中使用诸如 red red 键值对的方式创建数组元素 也不要使用诸如 colors red red 的赋值语句的方式创建数组元素 否则程序的可读性及运行效率将大打折扣 5 2一维数组的创建 4 数组元素 值 的访问访问数组元素值的方法和访问变量值的方法相同 通过指定数组名并在方括号内指定 键名 的方式 访问 数组元素的 值 使用这样的方法访问数组 不仅可以读取某个数组元素的 值 还可以为数组添加数组元素以及修改数组元素的 值 并可以像访问 变量 的方法访问数组元素的值 PHP提供两种变量赋值方式 传值赋值和传地址赋值 对于数组同样适用 5 3二维数组 1 二维数组的创建二维数组的创建方法和一维数组的创建方法相同 方法一 直接将变量声明为二维数组方法二 使用array 语言结构创建二维数组 array studentNo 2010001 studentName 张三 studentSex 男 2010002 array studentNo 2010002 studentName 李四 studentSex 女 2010003 array studentNo 2010003 studentName 王五 studentSex 男 2010004 array studentNo 2010004 studentName 马六 studentSex 女 print r students 5 3二维数组 2 二维数组元素 值 的访问二维数组中存在两个 键 因此访问数组元素的 值 时需要指定这两个 键 例如 students 2010001 studentName 对应的值是 张三 其中第一个键 2010001 用于指定二维数组 students中的某一 行 第二个键 studentName 用于指定二维数组 students的该 行 的某一 列 只使用第一个 键 访问数组时 访问的是二维数组中的某一 行 该行是一个一维数组 例如 students 2010001 对应的值是数组 5 4数组处理函数及应用 1 快速创建数组的函数1 range 函数语法格式 arrayrange mixedstart mixedend 函数功能 快速创建一个从start到end范围的数字数组或字符数组 函数说明 如果start end 序列将从start到end 2 explode 函数语法格式 arrayexplode stringseparator stringstr 函数功能 使用指定的字符串分隔符separator分割字符串str 将分割后的字符串放到数组中 并返回该数组 5 4数组处理函数及应用 1 快速创建数组的函数3 array combine 函数语法格式 arrayarray combine arraykeys arrayvalues 函数功能 创建一个新数组 用数组keys的值作为新数组的 键 数组values的值作为新数组的 值 4 array fill 函数语法格式 arrayarray fill intstart key intlength mixedvalue 函数功能 创建一个数组 并为该数组添加length个数组元素 数组元素的 键 从start key处开始递增 每个数组元素的值为value 说明 length必须是一个大于零的数值 否则PHP会提示Warning警告信息 5 4数组处理函数及应用 1 快速创建数组的函数5 array pad 函数语法格式arrayarray pad arrayarr intpad size mixedpad value 函数功能 array pad 函数返回数组arr的一个拷贝 并用pad value将其填补到pad size指定的长度 如果pad size为正 则数组被填补到右侧 如果为负则从左侧开始填补 如果pad size的绝对值小于或等于input数组的长度则没有任何填补 5 4数组处理函数及应用 2 数组统计函数1 count 函数语法格式 intcount arrayarr intmode 函数功能 统计并计算数组arr中元素的个数 如果数组arr是多维数组 可将mode参数的值设为常量COUNT RECURSIVE 或整数1 计算数组arr中所有元素的个数 mode的默认值是0 该函数的别名函数为sizeof 2 max 函数语法格式 mixedmax arrayarr array 函数功能 统计并计算数组arr中元素的最大值 说明 PHP会将非数值的字符串当成0处理 但如果这个正是最大的数值则仍然会返回一个字符串 如果多个数组元素的值为0且是最大值 函数会返回其中数值的0 如果数组元素中没有数值的0 则返回按字母表顺序最大的字符串 5 4数组处理函数及应用 2 数组统计函数3 min 函数语法格式 mixedmin arrayarr array 函数功能 统计并计算数组arr中元素的最小值 说明 PHP会将数组arr中的字符串当成0处理 如果字符串正是数组arr中最小的数值 则仍然会返回一个字符串 min 函数返回一个字符串时 该字符串为数组中顺序靠前的字符串 4 array sum 函数语法格式 numberarray sum arrayarr 函数功能 统计并计算数组arr中的所有元素值的和 array sum 返回整数或浮点数 说明 PHP会将数组arr中的非数值类型的元素值自动类型转换为整数或浮点数 5 4数组处理函数及应用 2 数组统计函数5 array product 函数语法格式 numberarray product arrayarr 函数功能 统计并计算数组arr中所有元素值的乘积 该函数返回整数或浮点数 说明 PHP会将数组arr中的非数值类型的数据自动类型转换为整数或浮点数 6 array count values 函数语法格式 arrayarray count values arrayarr 函数功能 统计并计算数组arr中所有元素的值出现的次数 5 4数组处理函数及应用 2 数组统计函数实训1 数组的遍历访问数组的所有元素的过程称为数组的遍历 使用数组统计count 函数和for循环语句可以遍历连续整数 键 的数组 例如程序ergodic1 php 该程序的运行结果如图所示 5 4数组处理函数及应用 3 数组指针函数每一个PHP数组在创建之后都会自动建立一个 内部指针系统 每个元素有一个 内部指针 pointer 指向下一个元素 并且 内部指针系统 会为每一个PHP数组自动建立一个 当前指针 current 指向数组的第一个元素 图5 24是程序createArray2 php产生的数组指针结构图 5 4数组处理函数及应用 3 数组指针函数1 key 函数语法格式 mixedkey array arr 函数功能 返回数组arr中 当前指针 所指元素的 键 名 说明 该函数并不移动 当前指针 也不会修改数组arr的内部结构 2 current 函数语法格式 mixedcurrent array arr 函数功能 返回数组arr中 当前指针 所指元素的 值 说明 current 函数有个别名pos 该函数并不移动 当前指针 也不会修改数组arr的内部结构 5 4数组处理函数及应用 3 数组指针函数3 next 函数语法格式 mixednext array arr 函数功能 移动数组arr 当前指针 current 使 当前指针 current 指向数组arr的下一个元素 然后返回 当前指针 current 所指的元素 值 说明 当 当前指针 current 指向数组的最后一个元素时 使用next 函数移动 当前指针 current 后 当前指针 current 为 空 并且 当前指针 current 指向的元素 值 为FALSE 5 4数组处理函数及应用 3 数组指针函数4 end 函数语法格式 mixedend array arr 函数功能 移动数组arr 当前指针 current 使 当前指针 current 指向数组arr最后一个元素 然后返回 当前指针 current 所指的元素 值 5 4数组处理函数及应用 3 数组指针函数5 prev 函数语法格式 mixedprev array arr 函数功能 移动数组arr 当前指针 current 使 当前指针 current 指向数组arr上一个元素 然后返回 当前指针 current 所指的元素 值 说明 当 当前指针 current 为 空 时 使用prev 函数移动 当前指针 current 后 当前指针 current 还为 空 并且 当前指针 current 指向的元素 值 为FALSE 5 4数组处理函数及应用 3 数组指针函数6 reset 函数语法格式 mixedreset array arr 函数功能 移动数组arr 当前指针 current 使 当前指针 current 指向数组arr的第一个元素 然后返回 当前指针 current 所指的元素 值 5 4数组处理函数及应用 3 数组指针函数7 each 函数语法格式 arrayeach array arr 函数功能 以数组形式返回 当前指针 current 所指的元素 包括 键 和 值 然后移动数组arr 当前指针 current 使 当前指针 指向数组arr下一个元素 说明 该函数返回的数组中共有四个元素 键值对 四个元素的 键 名分别为 0 1 key和value 键 名为0和key的元素值为arr 当前指针 current 所指的元素键名 键 名为1和valuey的元素值为arr 当前指针 current 所指的元素值 见表 5 4数组处理函数及应用 3 数组指针函数实训2 非连续 键 的数组遍历使用next 函数和while循环语句可以遍历非连续 键 的数组 例如程序ergodic2 php 5 4数组处理函数及应用 4 数组和变量间的转换函数1 list 语言结构语法格式 voidlist mixedvarname1 mixedvarname2 mixed arrayarr 函数功能 用一步操作给一组变量进行赋值 list 语言结构中定义变量名varname1 varname2等 变量值在数组arr中 说明 list 语言结构仅用于数字 键 的数组 并要求数字 键 从0开始连续递增 2 extract 函数语法格式 intextract arrayarr 函数功能 extract 函数使用数组arr定义一组变量 其中变量名为数组arr元素的键名 变量值为数组arr元素 键 对应的值 5 4数组处理函数及应用 4 数组和变量间的转换函数3 compact 函数语法格式 arraycompact mixedvarname1 mixedvarname2 mixed 函数功能 compact 函数返回一个数组 数组每个元素的 键 名为变量名varname1 varname2 每个数组元素的 值 为变量varname1 varname2 的值 5 4数组处理函数及应用 4 数组和变量间的转换函数使用list 语言结构 each 函数和while循环语句可以实现数组的遍历 例如程序ergodic3 php value 5 4数组处理函数及应用 5 数组遍历语言结构foreach语言结构有两种用法 1 foreach arrayas value 使用该方法循环遍历给定的数组array 每次循环中 当前指针 所指元素的 值 赋给变量 value 然后移动数组array 当前指针 使 当前指针 指向下一个元素 周而复始 直至数组array最后一个元素 此时 当前指针 为空 2 foreach arrayas key value 使用该方法循环遍历给定的数组array 每次循环中 当前指针 所指元素的 键 名赋给变量 key 当前指针 所指元素的值赋给变量 value 然后移动数组array 当前指针 使 当前指针 指向下一个元素 周而复始 直至数组array最后一个元素 此时 当前指针 为空 5 4数组处理函数及应用 6 数组检索函数1 array keys 函数语法格式 arrayarray keys arrayarr mixedsearchValue 函数功能 array keys 函数以数组的形式返回arr数组中的 键名 如果指定了可选参数searchValue 则只返回searchValue值的键名 否则arr数组中的所有键名都会被返回 说明 如果searchValue是字符串 则比较以区分大小写的方式进行 2 array values 函数语法格式 arrayarray values arrayarr 函数功能 array values 函数以数组的形式返回arr数组中所有的元素值 过滤掉重复的元素值 并为该数组建立连续的整数 键 5 4数组处理函数及应用 6 数组检索函数3 in array 函数语法格式 boolin array mixedsearchValue arrayarr boolstrict 函数功能 检查数组arr中是否存在值searchValue 如果存在则返回TRUE 否则返回FALSE 如果第三个参数strict的值为TRUE 则in array 函数还会检查数据类型是否相同 strict的默认值为FALSE 说明 如果searchValue是字符串 则比较时区分大小写 5 4数组处理函数及应用 6 数组检索函数4 array key exists 函数语法格式 boolarray key exists mixedkeyName arrayarr 函数功能 检查数组arr中是否存在键名keyName 如果存在则返回TRUE 否则返回FALSE 5 4数组处理函数及应用 6 数组检索函数5 array search 函数语法格式 mixedarray search mixedsearchValue arrayarr boolstrict 函数功能 在数组arr中搜索给定的值searchValue 如果找到则返回对应的键名 否则返回FALSE 如果第三个参数strict的值为TRUE 则array search 函数还会检查数据类型是否相同 strict的默认值为FALSE 说明 如果searchValue是字符串 则比较时区分大小写 如果searchValue在arr中出现不止一次 则返回第一个匹配的键 要返回所有匹配值的键 应该用array keys 函数 5 4数组处理函数及应用 6 数组检索函数6 array unique 函数语法格式 arrayarray unique arrayarray 函数功能 array unique 函数返回一个移除数组arr中重复的元素 值 的新数组 说明 array unique 函数保持了原有的 键值对 对应关系 对每个值只保留第一个遇到的键名 5 4数组处理函数及应用 7 数组排序函数1 sort 函数语法格式 boolsort array arr 函数功能 sort 函数按元素 值 的升序 先是数字 然后是标点符号 最后是字母 对数组arr进行排序 如果排序成功则返回TRUE 否则返回FALSE 说明 sort 函数为排序后的数组arr赋予新的 整数 键名 2 asort 函数语法格式 boolasort array arr 函数功能 asort 函数按元素 值 的升序 先是数字 然后是标点符号 最后是字母 对数组arr进行排序 如果排序成功则返回TRUE 否则返回FALSE 说明 数组arr经asort 函数排序后 保持数组元素原有的 键值对 对应关系 5 4数组处理函数及应用 7 数组排序函数3 rsort 函数和arsort 函数rsort 函数和arsort 函数与sort 函数和rsort 函数是一致的 不同的是rsort 函数和arsort 函数是按降序对数组进行排序 4 ksort 函数语法格式 boolksort array arr 函数功能 ksort 函数对数组arr按照键名升序排序 并保持数组元素原有的 键值对 对应关系 如果成功则返回TRUE 否则返回FALSE 5 4数组处理函数及应用 7 数组排序函数5 krsort 函数语法格式 boolkrsort array arr 函数功能 krsort 函数对数组arr按照键名降序排序 并保持数组元素原有的 键值对 对应关系 如果成功则返回TRUE 否则返回FALSE 5 4数组处理函数及应用 7 数组排序函数6 natsort 函数语法格式 boolnatsort array arr 函数功能 用 自然排序 算法对数组arr元素 值 进行升序排序 并保持数组元素原有的 键值对 对应关系不变 7 natcasesort 函数语法格式 boolnatcasesort array arr 函数功能 用 自然排序 算法对数组arr元素 值 进行不区分大小写字母的升序排序 并保持数组元素原有的 键值对 对应关系不变 5 4数组处理函数及应用 7 数组排序函数8 shuffle 函数语法格式 boolshuffle array arr 函数功能 shuffle 函数为数组arr随机排序 说明 shuffle 函数将为随机排序后的数组arr赋予新的键名 9 array reverse 函数语法格式 arrayarray reverse arrayarr boolpreserve keys 函数功能 array reverse 函数返回一个和数组arr元素顺序相反的新数组 如果preserve keys为TRUE则保持数组元素原有的 键值对 对应关系不变 5 4数组处理函数及应用 8 数组与数据结构1 array push 函数语法格式 intarray push array arr mixedvar1 mixedvar2 mixed 函数功能 array push 函数将arr当成一个栈 并将参数var1 var2 分别压入arr的末尾 2 array pop 函数语法格式 mixedarray pop array arr 函数功能 array pop 函数弹出数组arr最后一个元素 并返回该元素值 如果array为空 或者不是数组 将返回NULL 说明 使用array pop 函数后会把数组arr的 当前指针 复位 自动调用reset 函数 5 4数组处理函数及应用 8 数组与数据结构3 array unshift 函数语法格式 intarray unshift array arr mixedvar1 mixedvar2 mixed 函数功能 array unshift 函数将arr当成一个特殊的队列 如图所示 并将参数var2 var1 分别插入arr的队首 该函数返回入队元素的个数 说明 这个特殊的队列限定在对首插入元素 在队首删除元素 5 4数组处理函数及应用 8 数组与数据结构4 array shift 函数语法格式 mixedarray shift array arr 函数功能 array shift 函数删除数组arr第一个元素 并返回该元素值 如果array为空 或者不是数组 将返回NULL 说明 使用array shift 函数后会把数组arr的 当前指针 复位 自动调用reset 函数 5 4数组处理函数及应用 9 数组集合运算函数1 array merge 函数语法格式 arrayarray merge arrayarr1 arrayarr2 array 函数功能 将数组arr1 arr2等合并为一个新数组 该函数返回该新数组 集合的并集运算 多个数组中 如果元素的键名相同 则后面的数组的元素 值 覆盖前面数组的元素 值 如果数组元素的键名是数字 后面的值将不会覆盖原来的值 而是附加到后面 5 4数组处理函数及应用 9 数组集合运算函数2 array diff 函数语法格式 arrayarray diff arrayarr1 arrayarr2 array 函数功能 array diff 函数返回一个新数组 新数组中的元素 值 是所有在arr1中 但不在任何其它参数数组中的元素 值 集合的差集运算 3 array intersect 函数语法格式 arrayarray intersect arrayarr1 arrayarr2 array 函数功能 array intersect 函数返回一个新数组 新数组中的元素 值 是即在arr1数组中 又在arr2等数组中出现的元素 值 集合的交集运算 5 4数组处理函数及应用 9 数组集合运算函数4 array diff assoc 函数语法格式arrayarray diff assoc arrayarr1 arrayarr2 array 函数功能 array diff assoc 函数返回一个新数组 新数组中的元素是所有在arr1中 但不在任何其它参数数组中的元素 集合的差集运算 说明 注意数组元素的键名也用于比较 5 4数组处理函数及应用 9 数组集合运算函数5 array intersect assoc 函数语法格式 arrayarray intersect assoc arrayarr1 arrayarr2 array 函数功能 array intersect assoc 函数返回一个新数组 新数组中的元素是即在arr1数组中 又在arr2等数组中出现的元素 集合的交集运算 说明 注意数组元素的键名也用于比较 5 4数组处理函数及应用 9 数组集合运算函数6 array diff key 函数语法格式 arrayarray diff key arrayarr1 arrayarr2 array 函数功能 array diff key 函数返回一个新数组 新数组中的元素 键 是所有在arr1中 但不在任何其它参数数组中的元素 键 集合的差集运算 7 array intersect key 函数语法格式 arrayarray intersect key arrayarr1 arrayarr2 array 函数功能 array intersect key 函数返回一个新数组 新数组中的元素 键 是即在arr1数组中 又在arr2等数组中出现的元素 键 集合的交集运算
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!