数组基础
含义:
数组就是一系列数据的集合体,他们按设定的顺序排列为一个“链的形状”。
注意:php中的数组单元的顺序,跟下标无关!
数组定义(赋值):
$arr1 = array(3, 11, 5, 18, 2 );//这是最常见的数组,下标为“默认下标”,就是从0开始的整数;
$arr2 = array(“a”=>3, “bb”=>11, “cc123”=>5, ‘d1’=>18, ‘xyz’=>2 );关联数组,下标为字符串,常见
$arr3 = array(1=>3, 10=>11, 3=>5, 0=>18, 88=>2 );下标可以人为给定;
$arr4 = array(1=>3, ‘a1’=>11, 3=>5, ‘mn’=>18, 88=>2 );下标可以数字和字符串混合使用;
$arr5 = array(5=>3, 11, 3=>5, ‘mn’=>18, 2 ); //有指定下标,也有“自动下标”,
//此时下标为:5,6,3,”mn”, 7
//可见,自动下标为“前面最大数字下标+1”
$arr6 = array(5=>3, 7.7=>11, 3=>5, ‘mn’=>18, 2 ); //此时下标为:5,7,3,”mn”, 8
$arr7 = array(5=>3, true=>11, false=>5, ‘mn’=>18, 2 ); //此时下标为:5,1,0,”mn”, 6
$arr8 = array(1=>3, 3=>33, true=>11, ); //此时下标为:1,3,其对应值为:11, 33
//下标如果有重复,后面的值覆盖前面的值;
$arr9 = array(1=>3, -3=>33, 11, ); //此时下标为:1, -3, 2,注意:最后一个逗号“可以有”。
其他一些形式:
$arr10[] = 3;
$arr10[] = 11;
$arr10[] = 5; //该数组下标为0,1,2,常规情况
$arr11[‘a’] = 3;
$arr11[‘bb’] = 11;
$arr11[‘cc123’] = 5; //该数组下标为’a’,’bb’,’cc123’,常规情况
$arr12[1] = 3;
$arr12[] = 11; //此时下标为2
$arr13[‘cc123’] = 5; //该数组下标为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);
二维数组:
$dd = array(
array(1, 11, 111),
array(2, 22, 222),
array(3, 33, 333)
);
多维数组:无非就是继续里面再用数组代替。
数组的遍历
foreach基本语法
foreach( $数组变量名 as 【$key =>】 $value ){
//循环体;这里可以去“使用”$key 和 value;
//$key 和 $value 就是该遍历语句一次次取得的数组的每一个单元(项)的下标和对应值。
//而且,它总是从数组的开头往后按顺序取数据。
}