数组的定义与遍历
程序员文章站
2022-03-24 09:32:36
...
1. 数组的概念
数组是一个能在单个变量中存储多个值的特殊变量。
2. 数组的类型
2.1 索引数组:位置敏感,访问严重依赖元素在数组中的位置
//索引数组的元素的索引,默认从0开始递增
$goods=['A1009','!0002','Air',12345];
printf('<pre>%s</pre>',print_r($goods,true));
//按索引访问
echo $goods[3];
2.2 关联数组,键的类型是字符串,应该有语义化的
$goods=['id'=>'A1009','name'=>'!0002','model'=>'Air','price'=>12442];
//关联数组的元素访问与元素在数组中的位置无关,只与它的键名相关
echo $goods['id'];
2.3 多维数组:是包含一个或多个数组的数组(用的最多的是二维,因为数据表解析出来的内容就是用二维表表示的)
$users=[
0=>['id'=>'123','name'=>'njk','age'=>24],
1=>['id'=>'124','name'=>'你哈','age'=>25],
2=>['id'=>'125','name'=>'dsd','age'=>26]
];
printf('<pre>%s</pre>',print_r($users,true));
echo $users[2]['name'];
3. 数组遍历
3.1 使用数组指针,逐个遍历
$stu=['id'=>'1020','name'=>'乐子','age'=>23,'course'=>'php','grade'=>68];
// current():获取指针当前位置的数组元素的值value
//key():获取指针当前位置的数组元素的键key
printf('[%s]=>%s',key($stu),current($stu));
3.2 用循环来实现遍历
$stu=['id'=>'1020','name'=>'乐子','age'=>23,'course'=>'php','grade'=>68];
while(true){ printf('[\'%s\']=>%s<br>',key($stu),current($stu)); if(next($stu)) continue;
else break;
}
$arr=['a',100,40,'php'];
for($i=0;$i<count($arr);$i++){
echo $arr[$i],'<br>';
}
for循环也可以遍历关联数组,但很少用
reset($stu);
for($i=0;$i<count($stu);$i++){
printf('[\'%s\']=>%s<br>',key($stu),current($stu));
next($stu);
}
3.3 foreach遍历
$users=[];
$users[]=['id'=>'101','name'=>'玉帝','age'=>88];
$users[]=['id'=>'102','name'=>'王母','age'=>78];
$users[]=['id'=>'103','name'=>'如来','age'=>70];
foreach ($users as $us) {
printf('id=%s,name=%s,age=%s',$us['id'],$us['name'],$us['age']);
}