08.php数组(一)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
谢谢!
索引数组
<?php $arr[]=100; $arr[]=200; $arr[]=300; $arr[]=400; print_r($arr); ?> PHP中的数组也支持不写下标插入元素,根据插入的顺序依次顺序匹配下 标。
索引数组
<?php $arr[]=600; $arr[]=700; $arr[1]=100; $arr[]=200; $arr[5]=300; $arr[]=400; print_r($arr); ?> 数组默认从0开始,如果设置了下标的元素,后面的元素就接着前面的下标增长。 如果有空元素在前面默认生成了已声明的元素下标,则PHP用定义的下标元素值替换默认声明的值。 上面的例子就是第二个元素索引是1,第三个元素索引是定义的1,则第二个元素被第三个元素覆盖。输出 为:0->600、1->100 、2->200 、5->300 、6->400s
索引数组
<?php $arr=null; for($i=0;$i<100;$i++){ $arr[]=$i; } ?> 我们可以这样声明一个0-99数组。
关联数组
<?php $person[“name”]=“raoqi”; $person[“age”]=29; $person[“sex”]=“boy”; print_r($person); ?> 这样声明一个关联数组。可以通过下标名称来关联到对应的值 。
each()函数
<?php $arr=array("name"=>1,2,3,"haha"=>4,5,6,7); echo print_r(each($arr)); echo "<br>"; echo print_r(each($arr)); echo "<br>"; ?> each方法传入一个数组,返回一个数组,每次返回四个元素,分别是1、value 、0、key。那么1和value返回的是元素的值,0和key返回的是元素的下标。每 执行一次,就会按照顺序获取给定参数数组里面依次的元素信息。如果输出到 最后没有元素了,就返回一个假。因此,可以配合while循环遍历数组。 //元素二的信息 //元素一的信息
while-each()
<?php $arr=array("name"=>1,2,3,"haha"=>4,5,6,7); while($a=each($arr)){ echo "下标:".$a[0]."|".$a["key"]; echo "值:".$a[1]."|".$a["value"]; echo "<br>"; } ?> While循环遍历的缺点是,由于each只遍历一次,当取到最后的时候不 会重复再取到数据。所以while配合each方法只能做一次遍历。
list()可以用来做分割字符串后,获取指定数组位置的内容 。 <?php $a="demo_one"; $b="demo_two"; list($first,$last)=explode("_",$a); echo $last; ?> //one
根据list函数使用的特性,配合each使用。 注意:因为list只能获取索引数组里面的元素,所以下面代码值能获取 到2个元素,非别是0代表key,1代表value。 <?php $arr=array("name"=>1,2,3,"haha"=>4,5,6,7); list($key,$value)=each($arr); echo $key."|"; echo $value."<br>"; ?>
数组的遍历
在其他语言里,通常使用FOR循环,但在PHP中使用FOR循环有不足之处。 通常我们在做实验测试的时候使用print_r()方法输出数组。 我们也可以通过var_dump()方法输出数组。 For循环遍历如下: <?php $arr=array(1,2,3,4,5,6); for($i=0;$i<count($arr);$i++){ echo “\$arr[“ .$i.”]”=“.$arr[$i].”<br>”; } ?> 思考一下,如果使用关联数组定义的如果做for循环,而且索引数组里的下标不一定是连续的,100的下标 也不一定有100个元素。
多维数组遍历
$arr=array(“hello”=>array(1,2,”aaa”=>3,4,”bbb”=>5,6),array( “one”,”two”),array(“a”,1,”b”,2)); foreach($arr as $key=>$value){//遍历外层 foreach($value as $k=>$v){//遍历内层 echo “\$arr[”.$key.”][“.$k.”]=“.$v.”<br>”; }echo “<br>”; } 嵌套循环foreach可以遍历出二维数组的内容。 思考:试试遍历三维数组?
数组的声明
<?php $arr=array(1,2,”one”,333.33,true); print_r($arr); ?> 可以使用array()函数声明索引数组,因为PHP是弱类 型,所以数组里面的元素可以是任意类型。
数组声明
<?php $arr=array(“ID”=>1,2,”name”=>”one”,333.33,true); print_r($arr); echo $arr[“ID”]; echo $arr[0]; echo $arr[2]; ?> 通过array()函数声明关联数组(=>为关联符号),当声明关联数组的时候,关联数 组和索引数组一起使用的时候,索引数组会重新排序,关联数组的下标不会影 响到索引数组下标的自动排序。$arr的索引分别为(id,0,name,1,2); //2 //333.33 echo $arr[“name”]; //one //1
多维数组的声明
多维数组(数组里面包含数组)的声明:在一个大的容器里,包含很多个小容器。 通过索引获取到的元素仍然可以索引继续获取元素。 <?php $onearr=array(1,2,3,4,5,6,7); $twoarr=array(“abc”,”xyz”); $threearr=array(1,”cc”,2,”bb”,3); $arr=array($onearr,$twoarr,$threearr); echo $arr[1][0]; echo print_r($arr); ?> 可以用关联数组的方式设置多为数组。获取时也就可以通过关联字符串的方式获取元素。
继续修改代码: <?php $arr=array("name"=>1,2,3,"haha"=>4,5,6,7); while(list($key,$value)=each($arr)){ echo $key."=>"; echo $value."<br>"; } ?> 终于实现遍历数组中的内容。 注意:同样根据each的特点,循环值能做一次。 试试:试着输出二维数组
php 程序开发! 程序开发!
目标 1、PHP数组的声明 2、PHP数组的遍历 3、PHP数组处理函数
什么是数组?
数组是一个可以存储一组或一些列数值的变量。 数组里面可以存其他类型的变量,包括数组本身。PHP中的 数组有如下特点: 1、可以存储任何类型的数据(多数据类型) 2、数组长度可以增加,长度根据数组中的元素而定。 注意:不像C#中需要指定长度,即使元素不足,在内存中也 占有位置。 int[] arr=new int[10];arr[0]=1;arr[1]=2;
数组的遍历
foreach循环遍历数组 <?php $arr=array(1,2,3,4,5,6,7); foreach($arr as $value){ echo $value.”<br>”; } foreach($arr as $key=>$value){ echo “\$arr[“.$key.”]=”.$value.”<br>”; } ?> 使用第二种方式可以获取到数组元素的索引。
源自文库 数组的声明
PHP数组分为“索引数组”和“关联数组”。 索引数组:数组的索引值是整数,以0开始,当通 过下标位置来显示数组元素时,就可以使用索引数 组。 关联数组:数组以字符串作为索引值(类似于C#中 的字典类)。
索引数组
<?php $arr[0]=100; $arr[1]=200; $arr[2]=300; $arr[3]=400; print_r($arr); ?> 由于是弱类型,当第一个元素被赋值了的时候,数据就被定义了。
试试: while-each()实现一个二维数组的遍 历。
list()函数
<?php $one=array(1,2,3); list($a,$b,$c)=$one; echo $a."<br>"; echo $b."<br>"; echo $c."<br>"; ?> list()函数是将一个数组赋值给自己,把数组里面的元素声明成list函数里面 的参数。通过输出参数得到元素的内容。
多维数组的声明
根据数组定义的特性,我们可以直接给多维数组赋值。 <?php $arr[0][1]=10; $arr[0][2]=20; $arr[“张三”][0]=30; $arr[“张三”][1]=40; $arr[][]=50; echo print_r($arr); ?> 虽然数组的维度没有限制,但是系统中一般最多使用到三维。
关联数组
<?php $person[]=1; $person[“name”]=“raoqi”; $person[2]=“test”; $person[“age”]=29; $person[“sex”]=“boy”; $person[10]=“abc”; print_r($person); ?> 思考:我们可以将索引数组和关联数组混合起来使用吗? 测试一下输出结果吧?
索引数组
思考:以下数组的长度。 <?php $arr[]=600; $arr[]=700; $arr[1]=100; $arr[]=200; $arr[5]=300; $arr[100]=400; echo count($arr); ?> 注意:在C#中数组元素的最大值确定数组大小、而PHP中数组的元素个数不是以元素下标的数字来决定的 ,所以不要被PHP中数组的下标骗了,PHP数组的大小就是真实元素的个数。下标可以指定任意数值 。 //count()函数输出数组长度