收藏 分销(赏)

PHP程序设计基础第4章-数组.pptx

上传人:天**** 文档编号:9829685 上传时间:2025-04-10 格式:PPTX 页数:47 大小:516.24KB 下载积分:12 金币
下载 相关 举报
PHP程序设计基础第4章-数组.pptx_第1页
第1页 / 共47页
PHP程序设计基础第4章-数组.pptx_第2页
第2页 / 共47页


点击查看更多>>
资源描述
PHP,数组,第四章,目录,01 PHP,数组概述,03 PHP,数组创建、修改和删除,04 PHP,数组遍历,05,数组相关函数,02 PHP,数组分类,01,PHP,数组概述,数组是什么,变量中保存单个数据,而数组中则保存的是多个变量的集合。使用数组的目的就是将多个相互关联的数据组织在一起形成一个整体,作为一个单元使用。,数组的组成,由于,数组,是由数组,元素组成的,而数组中的元素又分为两部分,分别为键和值。,“键”是数组元素的识别名称,也被称为数组下标。,“值”为数组元素的内容。,“键”和值之间使用“,=”,连接。,数组各个元素之间使用逗号“,”,分割。,最后一个元素后面的逗号可以省略。,01,PHP,数组概述,例:,$week=array(a=,星期一,b=,星期二,c=,星期三,);,星期一,星期二,星期三,$week,内存,a,b,c,包含三个元素:,$weeka,$,weekb,$weekc,键,值,01,PHP,数组概述,02 PHP,数组分类,PHP,中将数组分为一维数组、二维数组和多维数组,但是无论是一维还是多维,可以统一将数组分为两种:数字索引数组(,indexed array,)和关联数组(,associative array,),。,(,1,)数字索引数组,数字索引数组,下标(键名)由数字组成,默认从,0,开始。,$arr_int=array(PHP入门与实战,C#入门与实战,VB入门与实战);,02 PHP,数组分类,(,2,)关联数组,关联数组的键名可以是数字和字符串混合的形式。,$arr_string=array(PHP=PHP入门与实战,Java=Java入门与实战,C#=C#入门与实战);,03,PHP,数组创建、修改和删除,数组创建,与,其它语言的数组实现方式不同,,php,不需要在创建数组时指定其大小,;,因为,php,是一种松散类型的语言,所以甚至不需要在使用前先,声明,;,在,PHP,中创建数组的方式主要有,2,种,:,(,1,)直接为数组元素赋值,。,(,2,),应用,array(),函数创建数组。,数组创建,(,1,)使用赋值方式定义数组,赋值方式定义数组就是创建一个数组变量,然后使用赋值运算符直接给变量赋值,。,语法,:,$arrayNamekey=value;,$,arrayName=value;,其中,键,key,可以是整型或者字符串,值,value,可以是,任何类型。,注意:通过直接为数组元素赋值的方式声明数组时,要求同一数组元素中的数组名相同。,03,PHP,数组创建、修改和删除,数组创建,示例:,$,arr=PHP;,$,arr=Java;,$,arr3=C,语言,;,$,arr5=C+;,$,arrsub=IOS;,$,arr=,网页设计,;,print_r,($arr);,03,PHP,数组创建、修改和删除,数组创建,(,2,),使用,array(),函数来创建一个数组,:,array(),函数定义数组就是将数组的元素作为参数,各元素间使用逗号“,”,分割。,语法:,array(key=value,key=value,),示例:,$info=array(id=1,name=Tom);,$,fruit=array(1=apple,3=banana);,$,num=array(1,4,7,9);,$,mix=array(tel=110,help,3=msg);,03,PHP,数组创建、修改和删除,数组创建,在定义数组时,需要注意以下几点:,(,1,)数组,元素的下标只有整型和字符串两种类型,如果有其他类型,则会进行类型转换。,(,2,)在,PHP,中合法的整数值下标会被自动的转换为整型下标。,(,3,)若,数组存在相同的下标时,后面的元素值会覆盖前面的元素值,。,(,4,)如果,给出方括号但没有指定键,则取当前最大整数索引值,新的键将是该值加,1,,如果当前还没有整数索引,则键将为,0,。,03,PHP,数组创建、修改和删除,数组创建,示例,:,理论,b=,教程,);,$arr=99;,$arr=100;,print_r($arr);,?,结果:,Array(a=,理论,b=,教程,0=99 1=100),03,PHP,数组创建、修改和删除,访问、删除,、修改数组或数组元素,(,1,),访问数组,由于数组中的元素是由键和值组成的,而键又是数组元素的唯一标识,因此可以使用数组元素的键来获取该元素的值。,示例:,$info=array(id=1,name=Tom);,echo$infoname;/,输出结果:,Tom,03,PHP,数组创建、修改和删除,访问、删除,、修改数组或数组元素,但若想要查看数组中的所有元素,使用以上方式会很繁琐,为此,,PHP,提供了,print_r(),和,var_dump(),函数,专门用于输出数组中的所有元素。,示例,:,print_r,(),函数可以按照一定的格式显示数组的键和值。,var_dump(),函数不仅具有,print_r(),函数的功能,还可以获取,数组中元素的个数和数据类型。,$info=array(id=1,name=Tom);,print_r($info);/,输出结果:,Array(id=1 name=Tom,),var_dump($info,);,03,PHP,数组创建、修改和删除,访问、删除,、修改数组或数组元素,(,2,)删除数组,PHP,中提供的,unset(),函数既可以删除数组中的某个元素,又可以删除整个数组,。,示例:,$fruit=array(apple,pear);,unset($fruit1);,print_r($fruit);/,输出结果:,Array(0=apple),unset($fruit);,print_r($fruit);/,输出结果:,Notice:Undefined,variable:fruit,.,03,PHP,数组创建、修改和删除,访问、删除,、修改数组或数组元素,(,3,)用,方括号的语法来修改数组元素:,$arr=value,示例:,理论,b=,教程,c=,第五次课,);,$arra=PHP,学习,;,$arre=,第五讲,;,print_r($arr);,?,03,PHP,数组创建、修改和删除,(,1,)使用,foreach,遍历,数组,遍历数组有很多种方法,可以使用,For,循环,,while,循环,最巧妙的一种遍历数组的方法,foreach,给遍历数组带来了很多方便。,foreach($arr as$key=$value),04 PHP,数组遍历,04 PHP,数组遍历,示例:,foreach,语句后面的,(),中的第一个参数是待遍历的数组名字,foreach,语句后面的,(),中的第二个参数,$key,表示数组元素的键。,foreach,语句后面的,(),中的第三个参数,$value,表示数组元素的,值。,$fruit=array(apple,pear);,foreach($fruit as$key=$value),echo$key.-.$value./,输出结果:,0-apple 1-pear,04 PHP,数组遍历,当不需要获取数组的键时,上述示例也可以写成如下形式,:,示例:,foreach($fruit as$value),echo$value./,输出结果:,apple pear,04 PHP,数组遍历,(,2,)使用,for,循环遍历数组。,?php,$bookinfo=array(PHP,程序设计,王彦辉,36,东软电子出版社,);,for($int_i=0;$int_i,04 PHP,数组遍历,(,3,)使用,print_r(),函数,$arr=array(array(2,4),array(3,5);,print_r($arr);,结果:,Array(0=Array(0=2 1=4)1=Array(0=3 1=5),04 PHP,数组遍历,(,4,),使用数组指针遍历数组,key(),返回数组当前指针元素的索引,;,current(),返回数组当前指针元素的值,;,next(),将数组指针向前移动一位,并返回当前指针元素的值,;,如果超出了数组元素的末尾,则返回,FALSE;,04 PHP,数组遍历,prev,(),将数组指针往回移动一位,并返回当前指针元素的值,;,如果指针本来就位于数组的第一个位置则返回,FALSE;,reset(),将指针指向第一个元素,并返回第一个元素的,值,end(),将数组指针指向最后一个元素,并返回最后一个元素的值,;,04 PHP,数组遍历,each(),返回数组当前指针元素的键和值,并将指针推进一个位置,;,list(),把数组中的值赋给一些变量,;,04,数组遍历,例,1,:,?,php,$arr=array(apple,banana,orange);,echo current($arr).;,each($arr);,echo current($arr).;,next($arr);,echo current($arr).;,end($arr);,echo current($arr).;,list($val1,$val2,$val3)=$arr;,echo$val1.;,echo$val2.;,?,04,数组遍历,例,2,:,$fruits=array(apple,banana,orange);,do,echo key($fruits).current($fruits);,while(next($fruits);,04,数组遍历,例,3,:,$,fruits=array(apple,banana,orange);,while($arr=each($fruits),echo$arrkey.$arrvalue.;,04,数组遍历,例,4,:,$,fruits=array(apple,banana,orange);,while(list($key,$value)=each($fruits),echo$key.$value;,05,数组,相关函数,(,1,),count(),函数,count(),函数用于计算数组中元素的个数。,示例,:,count(),函数的第二个参数默认为,0,时,只计算一维数组的个数。,count(),函数的第二个参数设为,1,时,表示递归地对数组计数。,$stu=array(,array(Tom,male,18),array(Alice,female,15),array(Julia,female,14),);,echo count($stu);/,输出结果:,3,echo count($stu,1);/,输出结果:,12,(,2,),range(),函数,range(),函数用于建立一个包含制定范围单元的,数组。,示例:,$arr=range(a,c);,print_r($arr);/,输出结果:,Array(0=a 1=b 2=c),05,数组,相关函数,(,3,),array_merge(),函数,array_merge(),函数用于合并一个或多个数组。,示例:,$array1=array(food=tea,2,4);,$array2=array(a,food=Cod,type=jpg,4);,$result=array_merge($array1,$array2);,/,输出结果:,Array(food=Cod 0=2 1=4 2=a type=jpg 3=4),print_r($result);,05,数组,相关函数,(,3,),array_merge(),函数,数组,array2,与,array1,中的字符串下标重复,则后面的下标值覆盖前面的下标值,输出,Cod,,没有重复的下标元素正常输出。,其他以数字为下标的数组,键名会以连续方式重新索引。例如:,array1,中的,4,合并后下标为,1,,,array2,中的,4,合并后的下标为,3,。,05,数组,相关函数,(,4,),array_chunk(),函数,array_chunk(),函数可以将一个数组分割成多个。,示例:,$arr=array(one=1,two=2,three=3);,/,输出结果:,Array(0=Array(0=1 1=2)1=Array(0=3),print_r(array_chunk,($arr,2);,/,输出结果:,Array(0=Array(one=1 two=2)1=Array(three=3),print_r(array_chunk($arr,2,true);,05,数组,相关函数,(,4,),array_chunk(),函数,array_chunk(),函数的第一个参数表示待分割数组。,array_chunk(),函数的第二个参数用于指定分割后数组中元素的个数,最后一个数组的元素个数可能会小于指定个数。,array_chunk(),函数的第三个参数在默认或设为,false,的情况下,表示分割后数组的下标从,0,开始,当设为,true,时,表示保留待分割数组中原来的键名。,05,数组,相关函数,(,5,),is_array,-,检测变量是否是数组,语法:,bool is_array(mixed var),如果,var,是,array,,则返回,TRUE,,否则返回,FALSE,(,6,),empty,-,检查一个变量是否为空,语法:,bool empty(mixed var),如果,var,是非空或非零的值,则,empty(),返回,FALSE,。换句话说,,、,0,、,0,、,NULL,、,FALSE,、,array(),、,var$var;,以及没有任何属性的对象都将被认为是空的,如果,var,为空,则返回,TRUE,05,数组,相关函数,(,7,),数组排序,函数,通常,情况下,若要对数组进行排序,则需要遍历数组,并对数组中的元素进行比较。实际上,在,PHP,中提供了许多用于排序的数组函数,方便程序开发。,函数名,功能描述,sort(),对数组排序,rsort(),对数组逆向排序,ksort(),对数组按照键名排序,krsort(),对数组按照键名逆向排序,asort(),对数组进行排序并保持索引关系,arsort(),对数组进行逆向排序并保持索引关系,shuffle(),打乱数组顺序,array_reverse(),返回一个单元顺序相反的数组,05,数组,相关函数,sort,:本函数为,array,中的元素赋予新的键名。这将删除原有的键名而不仅是重新排序。,rsort,:本函数对数组进行逆向排序(最高到最低)。删除原有的键名而不仅是重新排序。,asort,:对数组进行排序并保持索引关系,arsort,:对数组进行逆向排序并保持索引关系,ksort,:对数组按照键名排序,保留键名到数据的关联,krsort,:对数组按照键名逆向排序,保留键名到数据的关联,05,数组,相关函数,函数:,sort(array,sort type),说明:,sort(),函数按升序对指定数组,(,第一个参数,),进行排序。,sort,函数第二参数作用为指定排序类型,是可选参数,可能的值为:,SORT_REGULAR:,默认值,不改变类型进行排序;,SORT_NUMERIC:,把值作为数字进行排序;,SORT_STRING:,把值作为字符串进行排序;,如数组中有,4,和”,37,,按数字排序,,4,小于”,37,;按字符串排序,,4,大于”,37,;,05,数组,相关函数,05,数组,相关函数,rsort(array,sort type),参数用法与,sort,函数相同,。,使用,rsort(),对数组进行降序排序。,?php,$array=array(5,26,37,18,9,42,88,66);,rsort($array);,for($i=0;$i,结果:,88664237261895,05,数组,相关函数,关联数组排序:,函数:,asort(array,sort type),说明:根据关联数组的元素值进行升序排序。参数使用见上面的,sort,函数。,函数:,ksort(array,sort type),说明:根据关联数组的关键字进行升序排序。参数使用见上面的,sort,函数。,05,数组,相关函数,32.00,WY=28.00,PHP=38.50);,echo,排序前结果:,;,foreach,($price as$key=$value,),echo,$key.-.$value.;,ksort,($price);,echo,排序后结果:,;,foreach,($price as$key=$value,),echo,$key.-.$value.;,?,05,数组,相关函数,(,8,),explode,(),返回由字符串组成的数组,语法:,array explode(string,separator,string,str,int limit,),Separator,为必要参数,指定的分割符;,Str,为必要参数,指定将要被分割的字符串;,Limit,为可选参数。如果设置了,limit,参数,则返回的数组包含最多,limit,个元素,而最后的元素将包含,string,的剩余部分,如果,limit,参数是负数,则返回除了最后的,-limit,个元素外的所有元素。,05,数组,相关函数,例,:,$str=11,22,33,44,55,66;,$,arr=explode(,$str);,print_r,($arr);,结果:,Array(0=11 1=22 2=33 3=44 4=55 5=66),05,数组,相关函数,(,9,),implode,(),将数组元素连接成字符串,例:,结果:,a*b*c*d,05,数组,相关函数,本章小结,本章首先介绍了数组的概念,然后讲解了数组的基本操作,主要包括数组指针、数组遍历等,最后讲解了在实际编程中用到的常用数组函数。,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服