第4讲数组 php.ppt_第1页
第4讲数组 php.ppt_第2页
第4讲数组 php.ppt_第3页
第4讲数组 php.ppt_第4页
第4讲数组 php.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四讲 数组的应用,课前回顾 1.静态变量和常量 2.控制语句 条件语句,循环语句 3.函数 函数调用,函数参数,函数返回值,课程目标 一、创建和输出数组(掌握) 二、增加和删除数组元素(掌握) 三、定位和遍历数组(掌握) 四、数组排序(了解) 五、其他常用数组函数(了解),1.数组和创建数组,PHP数组就是一组数据的集合,把一系列数据组织起来,形成一个可操作的整体。数组的每个实体都包含两项:键和值。PHP数组分为索引数组和关联数组两类 PHP中使用array来创建一个数组: array( key=value , key=value ) 例子: $arr = array (3,5,7,9,6)

2、; $arr = array (id=2,title=3);,1.1使用array创建数组,/创建一个带有索引的数组键既可用字符也可用数字 $speed = array(“aa=50,2=120,3=260,4=300); /创建一个二组数组 $two = array( color = array(red,blue,green), numbers = array(1,2,3,4,5,6,7,8,9) ); 二维数组遍历,1.2 使用compact()创建数组,2. compact() 接受可变的参数数目。每个参数可以是一个包括变量名的字符串 ,1.2使用compact()创建数组,foreac

3、h($result as $key=$value) echo $key,=,$value,; 输出: event=SIGGRAPHcity=San Franciscostate=CA,1.3 使用range()创建数组,如果使用array()函数,建立一个包含100个元素的数组,每个元素的值之间都有一定的规律,在实际操作中是比较麻烦的。在这种情况下,就可以使用range()函数的自动功能来完成类似的操作。 array range(int low ,int high ,int step ) ,2. 输出和测试数组,使用print_r()函数输出: print_r($array); 使用循环控制语

4、句输出: foreach($array as $key=$value) echo $key,=,$value,; 使用is_array()函数测试参数是否为数组类型,如果是返回true,否则返回false: $states=array(aa,bb); echo $states is an array:.is_array($states).;,3.增加和删除数组元素,通过赋值增加数组元素 $arrays=array(河南=郑州); $arrays江西=南昌“; 使用array_push()函数追加数组元素(入栈) int array_push ( array 使用array_pop()返回数组的

5、最后一个元素(出栈) mixed array_pop ( array array_push($stack, array_push); print_r($stack);print ; array_pop($stack); print_r($stack);print ; array_shift($stack); print_r($stack);print ; array_unshift($stack,array_unshift); print_r($stack);print ; ?,4.1定位数组,当一个数组有很多元素时,使用数组遍历来求证某个值或键名是否存在,在速度和效率上有一定的损失。PHP提

6、供了in_array()和array_key_exists()函数,可以快速从一个数组中取得某个值或键名是否存在 in_array()示例: $os = array(Mac, NT, Irix, Linux); if (in_array(Irix, $os) echo Got Irix; array_key_exists()示例: $search_array = array(first = 1, second = 4); if (array_key_exists(first, $search_array) echo tihs first is the array; ,4.1定位数组,对数组的操

7、作主要是针对键名或值,在不想破坏被访问数组的情况下,可以把这个数组的键名或值,单独取出来进行操作,要想返回一个数组中单元的键名,可以使用array_keys()函数,返回单元的值,可以使用array_values()函数。使用array_keys()与array_values()这两个函数取回的键名或值,都会保存的新数组中 array_keys()示例: $array = array(0 = 100, color = red); print_r(array_keys($array);,4.1定位数组,Array_unique() Array array_unique(array inputAr

8、ray) 会删除inputArray中所有重复的值,返回一个由唯一值组成的数组 示例: $countrys=array(China,England,USA,Corlina,USA,England); $uniqCons=array_unique($countrys); print_r ($uniqCons);,4.2 遍历数组,很多情况下我们都需要对数组进行遍历以获得各个键和值,PHP提供很多了 很多函数来完成类似的任务下面列举一些常用的函数 1Key() 返回数组中当前单元的键名。 2Reset() 将 array 的内部指针倒回到第一个单元并返回第一个数组单元的 值,如果数组为空则返回 F

9、ALSE。 3Each() 返回数组中当前的键值对并将数组指针向前移动一步 4Current() 返回数组中的当前单元的值 5End() 将数组的内部指针指向最后一个单元 6Next() 将数组中的内部指针向前移动一位 7Prev() 将数组的内部指针倒回一位,4.2 遍历数组, 0, color = red,55,two=array(1=3,5,6,7); function showValue($arr) $flag=reset($arr); while(!is_bool($flag) $key=key($arr); $value=current($arr); if(is_array($va

10、lue) showValue($value); ?,4.2 遍历数组,; $flag=next($arr); showValue($array); ?,4. 数组排序,数据排序时计算机科学中的核心问题,PHP也提供了很多对数组的排序函数 简单排序(键/值关联不再保持) sort() 基本排序 rsort() 功能与sort相同、但反方向排序 根据键排序 ksort() 按数组的键排序 $stateC=Delaware; $stateA=Pemsylwania; $stateB=New Jersey; krsort() 功能与ksort()相同,但为逆向排序,4. 数组排序,根据键值排序 aso

11、rt() 功能与sort相同、以升序排序,但保持键/值的关联 $state0=Delaware; $state1=Pemsylwania; $state2=New Jersey; arsort() 功能与asort相同,反向排序 自然语言排序 natsort()区分大小写 $pics=array(picture1,picture10,picture15,picture2); natcasesort()不区分大小写 pics=array(picture1,Picture10,PICTURE15,PICTure2); 多维排序 array_multisort(),4. 数组排序,多维排序例子 ,4

12、. 数组排序,多维排序例子 ,4. 数组排序,多维排序例子 $arr1 = array(1,9,5,9); $arr2 = array(6,2,4,1); $arr3 = array(3,7,8,0); array_multisort($arr2,SORT_NUMERIC,SORT_DESC,$arr3,$arr1);,4. 数组排序,一般排序循环打印输出 lemon, “o=orange, b=banana, “a=apple); foreach ($fruits as $key = $val) echo $key = $val,; echo ; sort($fruits); foreach

13、 ($fruits as $key = $val) echo $key = $val,; ?,4.其他常用数组函数,合并和拆分数组的函数 (1)array_combine(keys,values) 将第一个输入数组的值作为新数组中的键,将第二个输入数组中的值作为新数组的值 示例 $actions=array(AL,AK,AR,AZ); $states=array(Alabma,Alska,Arizma,Arkamas); $siteMap=array_combine($actions,$states); (2)Array_merge() 数组追加,多个数组联合 示例 $siteMap=arra

14、y_merge ($actions,$states);,4.其他常用数组函数,(3)Array_merge_recursive() 功能与Array_merge相同,区别在于:一旦后面的数组与前面的数组的键值重复时该键将相同的键合并为一个新的数组,Array_merge则覆盖前面的键值对 示例: $class1=array(John=100,Mkie=98); $class2=array(John=98,Lucy=88); $sites=array_merge_recursive($class1,$class2); 随机返回数组键的函数 (4)Array_slice(array inputar

15、ray,int offset,int length ) array必需。规定输入的数组。 offset必需。数值。规定取出元素的开始位置。如果是正数,则从前往后开始取,如果是负值,从后向前取 offset 绝对值。 length可选。数值。规定被返回数组的长度。如果是负数,则从后向前,选取该值绝对值数目的元素。如果未设置该值,则返回所有元素。 示例: $couns=array(China,England,USA,Corlina,USA,England);$conMap=array_slice($couns,2,-2);,4.其他常用数组函数,(5)array_rand() 随即获取一个或多个键 $countrys=array(“China”,“England”,“USA”,“Corlina”,“USA”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论