黑马程序员技术交流社区
标题: 2032-李志颖-4-16-视频课 [打印本页]
作者: 温存另一半的爱 时间: 2017-4-17 23:13
标题: 2032-李志颖-4-16-视频课
数组数组基础含义:数组就是一系类数据的集合体,他们按设定的顺序排列为一个“链的形状”。
注意:php中的数组单元的顺序,跟下标无关。
数组定义(赋值):$arr1=array(3, 11, 5, 6);这是最常见的数组,下标为默认下标,就是从0开始的整数。
$arr2=array(“a”=>3,“b2”=>44,“c123”=>14,“d1”=>23,“x5”=>18);关联数组,下标为字符串
$arr3=array(1=>3,10=>44,3=>14,3=>23,5=>18);下标可以人为给定;
$arr4=array(1=>3,“a1”=>44,3=>14,3=>23,“mn”=>18);下标可以为数字和字符串混合使用
$arr5=array(1=>3, 44, 5=>14,“mn”=>18,3=>23); //有指定下标,也有自动下标,
//此时下标为:1,2,5,“mn”,3
//可见自动下标为前面最大数字下标+1
$arr6=array(1=>3, 7.7=>23, 5=>14,“mn”=>18,3=>23);//此时下标为1,7,5,“mn”,3
$arr7=array(2=>3, 44, true=>14,false=>18,5=>23);//此时下标为2,3,1,0,5
$arr8=array(1=>3, 5=>14, true=>11); //此时下标为1,5 对应值为3,14
//下标如果有重复,后面的值覆盖前面的值
$arr9=array(1=>3, -5=>14,3=>23,); //此时下标为1,-5,3 后面的逗号可以有
其他形式:
$arr10[]=3;
$arr10[]=11;
$arr10[]=5; //该数组下标为0,1,2 常规情况
$arr11[‘a’]=3;
$arr11[‘bb’]=11;
$arr11[‘c123’]=5; //该数组下标为 ‘a’, ‘bb’, ‘c123’
$arr12[1]=3;
$arr12[]=11; //此时下标为2
$arr13[‘cc123’]=3; //该数组的下标为1,2,cc123
注意:php中,数组单元的顺序,是由其”放入“顺序决定,而不是下标
数组取值:$v1=$arr1[0];
$i=3;
$v2=$arr1[$i]; //取的数组下标为3的单元的值;
总体上,可以将取的一个数组的单元的值,看组取得一个变量的值完全一样
数组的分类按键值关系来分:素引数组:通常认为,如果一个数组的下标是严格按照从0开始的连续的整数作为下标,则称其为索引数组——就是类似js数组的下标。例如:
$arr1=array(3, 11 ,5, 18, 2);//这是最常见的数组,下标为”默认下标“,就是从0开始的整数
关联数组:通常认为,如果一个数组的下标都是一个“字符串”并一定程度上表明了该单元的含义,则称为关联数组,例如:
$conf=array(
‘host’=>”localhost”;
‘port’=>3306;
‘username’=>”root”;
‘password’=>’123’;
);
混合数组:既有数字下标,又有字符下标的情况:
$arr4=array(1=>3, ‘a1’=>11, 3=>5, ‘mn’=>18, 88=>2); //下标可以数组和字符串混合使用;
按叔祖的维数(复杂程度)分:一维数组:
$a=array(1,11,111);
$b=array(2,22,222);
$c=array(3,33,333);
二维数组:
多维数组
数组的基本使用求一个数组的平均值:$a=array(1,11,111,1111);
$len=count($a); //数组的长度
$sum=0; //用于总和
$c=0; //用于存储数组的个数
For ($i=0;$i<$len;++$i){
$sum+=$a[$i];
++$c;
}
Echo “<br />平均值为:” . ($sum/$c);
求一个二维数组的平均值:$dd=array{
array(1,11,111),
array(2,22,222),
array(3,33,333)
};
$len=count($dd);
$sum=0; //用于总和
$c=0; //用于存储数组的个数
For($i=0;$i<$len;++$i){
$temp=$dd[$i];
$len2=count($temp);
For($k=0;$k<$len2;++$k){
$sum+=$temp[$k];
++$c;
}
}
Echo “<br /> 平均值为:” . ($sum/$c);
求一个一维数组的最大值:$arr3=array(13, 5, 8, 15, 11, 22);
$max=$arr[0];
$pos=0;
$len=count($arr3);
for($i=0;$i<$len;++$i){
If($arr3[$i]>$max){
$max=$arr3[$i];
$pos=$i;
}
}
求交换一个一维数组的最大值和最小值的位置:$arr3=array(13, 5, 8, 15, 11, 22);
Echo “<br />交换之前:”; print_r($arr3);
$max=$arr[0];
$pos=0;
$min=$arr3[0];
$pos2=0;
$len=count($arr3);
for($i=0;$i<$len;++$i){
If($arr3[$i]>$max){
$max=$arr3[$i];
$pos=$i;
}
If($arr3[$i]<$min){
$mmin=$arr3[$i];
$pos2=$i;
}
}
Echo “<br />最大值为:” . ($max) .”,其下标为$pos”;
Echo “<br />最小值为:” . ($min) .”,其下标为$pos2”;
//然后开始交换
$t=$arr3[$pos];
$arr3[$pos]=$arr3[$pos2];
$arr3[$pos2]=$t;
Echo “<br />交换之后:” print_r($arr3);
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps9C31.tmp.jpg
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps9C32.tmp.jpg
数组的基本遍历foreach 基本语法
foreach ($数组变量名 as 【$key=>】 $value){
//循环体; 这里可以去”使用“$key和$value;
//$key和$value就是该遍历语句一次次取得的数组的每一个单元(项)的下标和对应值。
//而且,它总是从叔祖的开头往后按顺序取数据。
}
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps9C42.tmp.jpg
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps9C43.tmp.jpg
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |