




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章数据的处理数据处理在PHP编程过程中有着重要的地位,因为各种操作说到底还是对数据的操作。例如,需要入库的各种用户信息、需要进行比较的日期时间、需要计算的数值等等。而在PHP的系统函数中分别定义了专门的函数类别用于处理不同的数据,如数学类函数、字符串类函数、数组类函数、日期时间类等。本章就来介绍,如何使用这些不同的系统函数对数据进行处理。在本章中,将重点学习以下内容:操作数值操作字符串操作数组操作日期时间8.1操作数值数值操作的应用范围比较广泛,特别是制作专业性较强的Web应用程序,如计算员工平均工资、执行各种复杂的数据基础绘图、进行各种不同进制的转换等。PHP系统函数中提供了math类函数专门用于处理各种数值操作,本节就来介绍各种数值的常见操作。8.1.1求绝对值PHP中提供了用于求绝对值的函数abs(),使用该函数可以求一个数的绝对值。该函数的语法格式如以下代码所示:numberabs(mixed$number)该函数的参数$number为指定的数值,既可以是整型数也可以是浮点数。函数将会根据求绝对值规则返回指定数的绝对值。如果参数number是float,则返回的类型也是float,否则返回integer。8.1.1求绝对值8.1.2小数取整在实际操作时,经常遇到需要将小数转变为整数的情况。PHP中提供了多种“小数取整”的方法。分别通过不同的函数来实现,本小节来介绍各种小数取整的方法。1.进一法取整2.舍去法取整3.四舍五入法取整8.1.3角度与弧度转化角度与弧度转化是常用的数学操作之一。因为通常人们所使用的类型是角度,而一些三角函数却需要使用弧度来作为参数,所以需要进行角度与弧度的转化。PHP中就专门提供了一类函数来执行角度与弧度的转化操作。1.角度转化为弧度2.弧度转化为角度8.1.3角度与弧度转化8.1.4次方与平方根求次方与求平方根,也有着广泛的用途,PHP中也提供了实现这两项功能的函数。1.求次方2.求平方根8.1.5求三角值三角类函数通常包括:正弦、余弦、正切、余切、正割、余割以及反正弦、反余弦、反正切、反余切、反正割、反余割等。PHP中提供了与这些数学表述几乎一致的函数。8.1.6求最值求一组数中的最大值或者最小值也是比较常用的操作之一。如求一个班级中的英语考试最高成绩、又比如评委评分时需要去掉的最低分等。PHP中也提供了求最大值与最小值的函数。1.求最大值函数2.求最小值函数求三角值求随机数随机数在Web应用程序也也有应用的的舞台,最最常见的就就是输入一一个随机的的验证码。。PHP中的随机数数处理函数数,也提供供了获取随随机数的功功能。使用用随机数函函数rand()即可实现这这样的效果果,该函数数的语法格格式如以下下代码所示示。intrand([intmin,intmax])该函数有两两个可选参参数:min与max都为数值型,,函数将会返返回min与max之间的一个随随机数值。如如果不带这两两个参数,函函数将返回0到系统支持最最大数值之间间的一个伪随随机数。注意rand(min,max)返回的随机数数,包含min与max即随机数也可可能是最小值值或者最大值值。求随机数进制转换进制的概念在在每种编程语语言中都有涉涉及。十进制制是人们日常常处理数值时时所使用的进进制,这种进进制最为人们们熟悉与理解解,除此之外外还有二进制制、八进制与与十六进制等等。这些进制制通常用于计计算机语言直直接处理数据据。所以数值值在不同进制制之间的转换换就成为数据据操作的一个个重要内容。。本小节来介介绍在PHP中如何实现进进制的转换操操作。1.十进制与二二进制转换2.十进制与八八进制转换3.十进制与十十六进制转换换4.任意进制之之间的转换进制转换其他数值处理理函数前面8小节介绍了几几种常用的数数值处理函数数,除了这些些函数之外,,PHP数学函数中还还包括其他几几个不太常用用的数值处理理函数,在这这里作下简要要的介绍。1.计算e的指数2.求余数函数数3.计算直角三三角形斜边长长4.以10为底的对数5.自然对数6.获取圆周率率8.2操作字符串字符串在数据据操作中也占占有相当大的的比重,因为为很多的数据据是以字符串串来作为载体体的。比如::注册用户的的用户名、密密码、联系方方式、地址等等等。所有这这些内容都需需要使用字符符串来对其进进行操作。针针对这种情况况,PHP中也提供了大大量的字符串串操作函数用用于处理字符符串,本节分分别来为读者者介绍。字符串输出字符串的输出出操作是所有有字符串操作作中最为基本本的一类操作作,PHP中提供了很多多用于实现字字符串输出的的函数(或者者语句)本小小节就先来介介绍字符串的的输出操作。。1.最常见的输输出:echo2.print输出函数3.格式化输出出字符串字符串长度求字符串长度度是使用字符符串的基础。。PHP中提供了用于于获取字符串串长度的函数数:strlen(),该函数的语语法格式如下下所示:intstrlen(string$string)以上代码中,,参数$string是需要获取长长度的字符串串,执行该函函数将以数值值形式返回指指定的字符串串的长度。字符串截取字符串截取操操作,是最常常用到的字符符串操作之一一,PHP中也提供了用用于实现字符符串截取的功功能。通过函函数:substr()即可实现字符符串截取操作作,该函数的的语法格式如如以下代码所所示:stringsubstr(string$string,int$start[,int$length])以上代码中$string为指定的需要要进行截取操操作的字符串串,参数$start为进行截取所所开始的位置置,以数值表表示;可选参参数$length为指定的截取取的长度也以以数值表示,,如果省略该该参数则从指指定位置截到到最后。执行行该函数将按按照指定的位位置及长度返返回一个新的的字符串。需要注意的是是,如果参数数$start为负数则从倒倒数第几个位位置开始截取取;如果参数数$length为负数则为字字符串末尾需需要保留的长长度。字符串截取字符串替换字符串替换操操作是最常用用的字符串操操作之一,在在实际编程过过程中,出于于某种特殊要要求,需要将将字符串中的的某些字符替替换为其他字字符。如用户户互动程序中中对用户输入入的内容中的的敏感或者违违法内容进行行过滤。PHP中提供了两个个用于实现字字符串替换功功能的函数,,下面分别为为读者介绍。。1.转换字符串串中的某些字字符2.将字符串中中一部分替换换为另一字符符串3.将字符串中中所有指定字字符进行转换换字符串替换字符串分割使用PHP的字符串分割割函数:explode()可以将字符串串按照指定规规则分割为几几个字符串,,结果以数组组的形式出现现。该函数的的语法格式如如以下代码所所示:arrayexplode(string$separator,string$string[,int$limit])该函数有两个个必选参数与与一个可选参参数:参数$separator为执行分割操操作的字符串串的一个子串串或者叫分割割标记;参数数$string为目标字符串串;可选参数数指定最多返返回的数组元元素个数。执执行函数将把把字符串按照照分割标记分分割为数组。。字符串分割字符串的比较较在PHP中,不仅数值值、数组可以以比较大小字字符串也有大大小的区分。。比较字符串串的大小需要要使用专门的的字符串比较较函数来实现现。1.不区分大小小写比较2.区分大小写写比较字符串的大小小写对英文字符串串进行操作时时,大小写的的转换问题就就成为字符串串操作的重要要内容之一。。PHP中也为字符串串的大小写转转换提供了一一组系统函数数。本小节就就来分别介绍绍这些大小写写转换类函数数。1.将字符串中中所有内容转转换为大写stringstrtoupper(string$str)2.将字符串中中所有内容转转换为小写stringstrtolower(string$str)3.将字符串的的首字母转换换为大写stringucfirst(string$str)4.将字符串的的每个单词的的首字母转换换为大写stringucwords(string$str)字符串的大小小写字符串与ASCII码在实实际际编编程程的的过过程程中中有有时时也也需需要要将将字字符符转转换换为为ASCII码,,或或者者反反过过来来将将ASCII码转转化化为为其其对对应应的的字字符符。。在在PHP的字字符符串串操操作作类类函函数数中中也也提提供供了了将将字字符符与与其其对对应应的的ASCII码进行转转换的函函数。本本小节来来介绍这这样的函函数。1.将字符符转换为为ASCII码2.返回ASCII码所对应应的字符符字符串与与ASCII码转换HTML特殊字符符在用户互互动程序序中,需需要对用用户的输输入内容容进行过过滤。因因为如果果用户输输入内容容中含有有HTML特殊字符符将会对对程序的的运行带带来一定定的影响响,甚至至于别有有用心的的用户可可以在HTML代码中混混合JavaScript代码可以以造用用用户秘密密的丢失失。而在在PHP字符串有有专门用用处理于于含有HTML特殊字符符的函数数。本节节就这些些函数为为读者作作介绍。。1.使用htmlentities()进行转换换2.使用htmlspecialchars()转换HTML特殊字符符字符串查查找在PHP中还可以以执行字字符串查查找操作作,即在在一个字字符串中中查找另另一个字字符串出出现的位位置。支支持该操操作的函函数为::strpos(),该函数数的语法法格式如如以下代代码所示示。intstrpos(string$haystack,mixed$needle[,int$offset])以上代码码中参数数$haystack为需要进进行查找找的字符符串,以以一个字字符串型型变量表表示;参参数$needle为查找的的目标字字符串;;$offset为可选参参数,该该函数指指定开始始查找的的偏移量量,其默默认值为为0。该函数数将返回回第一个个找到的的位置,,如果找找不到,,函数将将会返回回FALSE。字符串查查找其他字符符串处理理函数除了前面面几小节节所介绍绍的字符符串处理理函数,,PHP中还有一一些其他他不太常常用的字字符串操操作函数数。本节节分别将将这些函函数为读读者作简简要介绍绍。1.返回字字符串中中所用字字符的信信息2.将字符符串使用用MD5加密3.翻转字字符串4.重复字字符串8.3操作数组组前面两节节分别为为读者介介绍了数数值的处处理与字字符串的的处理,,而作为为一种普普通变量量的集合合,数组组也有着着非常广广泛的用用途。这这一节就就来介绍绍在PHP中常用的的数组操操作的内内容。PHP的系统函函数专门门提供了了一类对对数组进进行操作作的函数数,通过过这些函函数可以以对数组组进行各各种需要要的操作作,本节节将逐一一作介绍绍。建立数组组建立数组组应该是是所有使使用数组组操作的的基础,,要使用用一个数数组首先先就要创创建数组组。在PHP中创建数数组所要要使用到到的函数数就是::array(),该函数数语法格格式如以以下代码码所示::arrayarrat([mixed$con])以上代码码中参数数$con即为创建建数组所所需要的的内容,,可以为为多种形形式。既既可以是是单个值值来表示示数组的的值,也也可以是是以=>操作符符连接接的键键值对对。函函数将将会根根据相相应的的参数数返回回数组组。数组长长度与字符符串一一样,,数组组也是是有长长度的的概念念的,,数组组的长长度通通常指指数组组所包包含有有元素素的个个数。。使用用PHP系统函函数中中的count()函数,,可以以获取取数组组的长长度。。该函函数的的语法法格式式如以以下代代码所所示::intcount(mixed$var[,int$mode])检查数数组中中值出出现次次数因为数数组是是一个个变量量的集集合,,一个个值在在数组组中可可能会会出现现多次次,所所以检检查数数组中中每个个值的的出现现次数数也成成为使使用数数组的的一个个重要要操作作。使使用PHP数组函函数array_count_values()即可返返回由由数组组的值值及其其出现现次数数所生生成的的数组组。该该代码码的语语法格格式如如下所所示。。arrayarray_count_values(array$input)以上代代码中中参数数$input为指定定的需需要进进行统统计的的数组组的名名称,,函数数将会会把数数组中中值出出现的的次数数以数数组的的形式式返回回。检查数数组中中值出出现次次数数组排排序数组的的排序序操作作在数数组操操作中中也占占用重重要的的地位位,常常规的的编程程语言言需要要用户户使用用自定定义的的冒泡泡排序序法及及其类类似的的方法法实现现排序序,而而在PHP中则提提供了了一组组用于于执行行数组组排序序的系系统函函数。。本小小节就就分别别来介介绍这这些数数组排排序函函数。。1.使用用arsort()函数排排序2.使用用asort()进行排排序3.使用用krsort()函数排排序4.使用用ksort()进行排排序5.使用用rsort()函数排排序6.使用用sort()进行排排序7.使用用uasort()函数排排序数组排排序移动数数组指指针在PHP的数组组中有有指针针的概概念,,数组组的指指针即即当前前数组组所指指向的的值。。PHP提供了了用于于返回回和移移动数数组指指针的的函数数,使使用该该函数数函数数可以以实现现数组组指针针的移移动与与返回回当前前指针针等操操作。。该类类函数数共有有以下下几个个:current()函数,返回回数组当前前指针所指指向的值,,初始的数数组指向第第一个值;;each()函数,返回回数组当前前指针所指指向的键值值对,并将将指针后移移一位(常常用于遍历历数组);;end()函数,将数数组指针移移动到最后后一位;next()函数,将数数组指针后后移一位;;prev()函数,将数数组指针前前移一位;;reset()函数,重置置数组,即即将数组指指针移到第第一位。移动数组指指针移除重复的的值在操作数组组的时候,,出于某种种要求,需需要将数组组中重复的的值进行移移除。如果果采用自定定义的函数数就需要遍遍历函数,,并找出重重复的值,,再将重复复的值进行行删除。而而在PHP中则预定义义了这样功功能的系统统函数:array_unique(),该函数的的语法格式式如下所示示:arrayarray_unique(array$array)以上代码中中,参数$array为一个指定定的数组。。该函数将将会对数组组进行分析析,移除数数组中的重重复的值,,并返回一一个没有重重复值的新新的数组。。移除重复的的值合并数组PHP支持对数组组的合并操操作,共有有三种方法法实现不同同类型的数数组合并。。本小节就就分别来介介绍这些数数组合并的的方法。1.最简单的的数组合并并方法2.使用array_merge()函数合并数数组3.使用array_merge_recursive()函数递归合合并数组合并数组检查数组中中是否存在在某个值在进行数组组处理需要要判断数组组中是否包包含某一个个值时可以以使用PHP中的数组函函数:in_array()。该函数的的作用就是是检查数组组中是否存存在某个值值,其语法法格式如以以下代码所所示:boolin_array(mixed$needle,array$haystack[,bool$strict])以上代码中中参数$needle为需要查找找的值,可可以是多种种类型;参参数$haystack为进行查找找的目标数数组;可选选参数$strict为布尔值,,指定在进进行检查时时是否也指指定类型检检查,默认认值为FALSE即不进行类类型检查。。检查数组中中是否存在在某个值其他数组处处理函数前面各小节节为读者介介绍了PHP中常用的数数组处理函函数。除了了这些函数数之外,PHP中还有一些些其他的数数组处理函函数,本小小节就选取取其中有代代表性的函函数为读者者作简单要要介绍。1.计算数组组的交集2.检查数组组是否有某某个键名3.返回数组组键名4.计算数组组所有值的的和5.返回数组组所有值8.4操作日期时时间日期时间的的操作在PHP编程中也占占有一席之之地,比较较常用的如如:获取当当前时间、、获取微秒秒数等等。。本节来介介绍一下在在PHP中的日期与与时间的操操作。使用前的准准备由于在PHP5新增加了时时区选项这这一设置,,其默认值值为格林威威治时间。。而中国大大部分所在在时区为东东八区,如如果采用默默认设置则则使用的时时间函数所所获取的结结果就会比比真实时间间晚8个小时。所所以在使用用所有的日日期时间函函数进行相相关操作之之前需要先先对该选项项进行设置置。其设置置方法如下下:(1)打开PHP的配置文件件php.ini。(2)查找date.timezone选项并去掉掉行首的分分号。(3)在“=””号后面加加Asia/Shanghai,保存php.ini配置文件。。(4)重启Apache服务即可。。经过上述修修改,使用用日期时间间函数即可可获取到正正确的值。。格式化日期期时间使用PHP中的date()函数,可以以格式化一一个本地时时间或者日日期。该函函数是最常常用的日期期时间函数数之一,其其语法格式式如以下代代码所示。。stringdate(stringformat[,inttimestamp])以上代码中中参数format为指定需要要返回的日日期时间的的格式,以以字符串表表示,可选选参数timestamp为一个时间间戳记,以以数值表示示,其默认认值为当前前时间戳记记。执行该该函数会返返回将整数数timestamp按照给定的的格式字串串而产生的的表示日期期时间的字字符串,如如果没有给给出时间戳戳则使用本本地当前时时间。格式化日期期时间取得日期时时间信息使用PHP中的getdate()函数将会取取得日期时时间的相关关信息。该该函数的语语法格式如如下所示::arraygetdate([int$timestamp])该函数有一一个可选参参数$timestamp,该参数为为一个日期期时间戳记记,如果省省略该参数数,默认将将使用当前前时间。执执行函数将将返回一个个包含指定定日期相关关信息的关关联数组。。返回回当当前前Unix时间间戳戳记记使用用time()函数数可可以以获获取取当当前前的的Unix时间间戳戳记记。。该该函函数数多多用用于于先先求求得得当当前前时时间间戳戳记记,,然然后后再再把把相相应应的的结结果果应应用用于于如如date()或者者getdate()函数数中中。。该该函函数数不不需需要要参参数数,,执执行行函函数数将将返返回回自自从从Unix纪元元((格格林林威威治治时时间间1970年1月1日00:00:00)到到当当前前时时间间的的秒秒数数。。将英英文文文文本本的的日日期期时时间间描描述述解解析析为为Unix时间间戳戳函数数strtotime()可以以将将使使用用英英文文描描述述的的日日期期时时间间解解析析为为Unix时间间戳戳记记,,该该函函数数语语法法格格式式如如下下所所示示::intstrtotime(string$time[,int$now])以上上代代码码中中参参数数$time为被被解解析析的的字字符符串串,,格格式式根根据据GNU(革革奴奴))日日期期输输入入格格式式的的语语法法。。可可选选参参数数$now是用用来来计计算算返返回回值值的的时时间间戳戳。。执执行行函函数数将将会会返返回回指指定定的的时时间间戳戳记记。。8.5数据据处处理理实实例例数据据处处理理在在PHP编程程中中占占有有很很重重要要的的位位置置,,同同样样在在一一些些PHP面试试中中经经常常会会涉涉及及到到数数据据处处理理的的相相关关内内容容。。本本节节就就找找其其中中较较有有代代表表性性的的几几个个题题目目给给大大家家一一些些解解决决方方案案,,使使读读者者有有所所启启发发,,再再碰碰到到同同样样的的题题目目时时即即可可迎迎刃刃而而解解。。处理理数数值值【范例例8-50】】题目目::在在不不使使用用第第三三个个变变量量的的情情况况下下,,交交换换两两个个数数值值型型变变量量的的值值。。通常常的的交交换换数数值值操操作作是是非非常常简简单单的的,,比比如如下下面面的的代代码码::$c=$a;$a=$b;$b=$c;经过过上上面面的的操操作作即即可可实实现现$a与$b内容容的的交交换换。。但但现现在在题题目目要要求求在在仅仅有有两两个个变变量量的的情情况况下下进进行行交交换换,,而而PHP又不不像像VB直接接有有可可以以实实现现两两数数交交换换的的函函数数,,所所以以就就需需要要动动一一点点脑脑筋筋了了。。处理理字字符符串串【范例例8-51】】题目目::编编写写一一个个函函数数,,实实现现字字符符串串的的翻翻转转,,不不能能使使用用系系统统函函数数strrev()。如如输输入入““abc””返回回““cba””。前面面介介绍绍过过字字符符串串处处理理函函数数strrev()即可可实实现现字字符符串串的的翻翻转转。。那那么么要要编编写写自自定定义义函函数数实实现现该该功功能能应应该该如如何何组组织织代代码码??这这里里可可以以通通过过字字符符串串截截取取函函数数substr()来实实现现。。处理理数数组组【范例例8-52】】题目目::实实现现数数组组由由小小到到大大的的排排序序,,不不允允许许使使用用所所有有系系统统函函数数中中的的数数组组排排序序函函数数。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《2025墓地区域租赁合同》
- 2025网络安全与行政助理的劳动合同
- 2025年初级物业招标代理合同
- 2025房屋租赁合同范文大全
- 中国第二十冶金建设公司综合学校高中分校高一上学期期中考试历史试题
- 电子产品研发合同协议
- 生活用水安全合同协议
- 电车运营租车合同协议
- 特级水泥购销合同协议
- 电力变压器转让合同协议
- 2025年建筑工程装饰合同范本
- 院校建设可行性研究报告
- 《电力设备典型消防规程》知识培训
- 2025年天津市河东区中考一模英语试题(原卷版+解析版)
- 2025届浙江省君兮协作联盟高三下学期4月教学质量检测英语试题(含解析)
- 注册会计师(综合阶段)题库完美版带答案分析2025
- 四川省成都东部新区龙云学校2024-2025学年五年级下册半期测试题(含答案)
- 新课标解读丨《义务教育道德与法治课程标准(2022年版)》解读
- 儿童支气管哮喘诊断与防治指南(2025版)解读课件
- 2024年中国海洋大学招聘辅导员笔试真题
- 仓管员安全培训课件
评论
0/150
提交评论