数组分类
1)索引数组:索引值为整数的数组
2)关联数组:索引值为字符串的数组(PHP语言特有)
比如:
0 name "李广"
1 grade 90分
2 sex 男
3 height 173cm
索引数组 关联数组
数组创建
1)PHP语言中不需要创建数组时指定数组大小
2)不需要在使用数组前声明
3)一个数组中可以存储任何类型的数据
索引数组创建
方法1:直接为数组元素赋值即可创建
$变量名[索引值]=数据内容;
索引值可以是整数也可以是字符串,也可以不写,默认为索引数组
方法2:使用array( )语言结构创建数组
$变量名=array(
key1=>value1,
.......
) ;
/* 索引数组 method 1. */
$student[0]=10;
$student[1]='Robin';
$student[2]=true;
$student[3]=99;
var_dump($student);
print_r($student); //echo()函数无法输出数组,需要使用print_r()函数
/* 索引数组 method 2. */
$student2=array(10,'robin',true,99);
var_dump($student2);
/* method 2. 手动指定写法 */
$student3=array(
0=>10,
1=>'Robin',
2=>true,
3=>99
); // ; must be added
var_dump($student3);
关联数组创建
/* 关联数组 method 1. */
$student4['id']=10;
$student4['name']='Robin';
$student4['sex']=true;
$student4['grade']=99;
var_dump($student4);
echo $student4['id']; // 输出数组中单个元素的方法
/* php中输出关联数组的所有元素时需要用freach进行数组遍历,不然输不出来 */
/* 关联数组 method 2. */
$student5=array(
'id'=>10,
'name'=>'Robin',
'sex'=>true,
'grade'=>88
);
var_dump($student);
二维数组访问方法:
变量名称[索引值][索引值]
/* 二维数组 */
$students=array(
0=>array(1,'Robin',true,88),
1=>array(2,'David',true,90),
2=>array(3,'Mike',false,85)
);
echo $students[0][1]; //Robin
echo $students[1][3]; //90
索引数组和关联数组都有两种数组写法,可以直接为数组赋值创建数组或者用array()结构创建数组
遍历数组
php中很少需要自己动手将大量的数据赋值到数组变量中,而是通过调用其他函数返回结果集,
这些结果集很多情况下都是数组类型,使用数组类型返回的目的是将相互关联的数据组织在一起形成集合,
以方便批量处理,所有实际工作中数组遍历需求较多
计算数组里数据的个数:
1)一维数组
count(数组名字)
$arr=array(
'a','b','c','d','e','f'
);
echo count($arr); //6
2)二维数组
$arr=array(
'a','b','c','d','e','f'
);
$arr1=array(
array(1,2,3),
array(4,5,6)
);
echo count($arr1,1); //参数1是可选的,结果是8个数据
用 for循环遍历索引数组:
//一维数组遍历
$arr=array('a','b','c','d','e','f');
for($i=0;count($arr);$i++){
echo $arr[$i].'<br/>';
}
用 foreach循环遍历关联数组:
1)遍历关联数组,但不显示索引值
foreach(数组名 as 变量1){
每次循环执行的语句
变量1代表当前正在访问的数据
}
$arr1=array(
'name'=>'ROBIN',
'num'=>10
);
foreach($arr1 as $value){
echo $value.'<br/>';
}
//ROBIN
//10
2)遍历关联数组,同时显示索引值
foreach(数组名 as 变量1=>变量2){
每次循环执行的语句
变量1代表当前正在访问的数据索引值
变量2代表当前正在访问的数据
}
$arr1=array(
'name'=>'ROBIN',
'num'=>10
);
foreach($arr1 as $key=>$value){
echo $key.'=>'.$value.'<br/>';
}
//name=>ROBIN
//num=>10