批改状态:合格
老师批语:任何语言都有数组,它是重要的数据组织方式
数组是什么?
数组是一个能在单个变量中存储多个值的特殊变量,并且您可以根据键访问其中的值。
// 索引数组: 位置敏感,访问严重依赖元素在数组中的位置// 键是数值的索引,表示元素的位置//定义方法1:$user_arr1=[0=>'peter',1=>'朱老师',2=>'灭绝老师',3=>'php.cn'];//定义方法2:$user_arr2=['peter','朱老师','灭绝老师','php.cn'];//定义方法3:$user_arr3[] = 'peter';$user_arr3[] = '朱老师';$user_arr3[] = '灭绝老师';$user_arr3[] = 'php.cn';//注意:如果未定义 $user_arr3=[],将自动创建,否则以追加的方式添加;echo $user_arr1[2];echo $user_arr2[2];echo $user_arr3[2];//输出:灭绝老师
// 关联数组,键的类型是字符串,应该有语义化的// 关联数组的元素访问与元素在数组中的位置无关,只与它的键名相关//定义方法1:$user_arr1 = ['id'=>1, 'name'=>'小明','age'=>18,'email'=>'xiaoming@php.cn'];//定义方法2:$user_arr2['id'] = 1;$user_arr2['name'] = '小明';$user_arr2['age'] = 18;$user_arr2['email'] = 'xiaoming@php.cn';//注意:如果未定义 $user_arr2=[],将自动创建,否则以追加的方式添加;echo $user_arr1['name'];echo $user_arr2['name'];//输出:小明
//索引数组$user_arr1 = [1, 'peter', 18,'xiaoming@php.cn'];//关联数组$user_arr2 = ['id'=>'1', 'name'=>'perer', 'age'=>18,'email'=>'php.cn'];echo $user_arr1[1];echo $user_arr2['name'];//以上均输出:peter
//key():返回数组中的当前元素的键key//current() - 返回数组中的当前元素的值//end() - 将内部指针指向数组中的最后一个元素,并输出//next() - 将内部指针指向数组中的下一个元素,并输出//prev() - 将内部指针指向数组中的上一个元素,并输出//reset() - 将内部指针指向数组中的第一个元素,并输出$user_arr = ['id'=>1, 'name'=>'peter','age'=>18,'email'=>'php.cn];echo key($user_arr).':'.current($user_arr).'';next($user_arr);echo key($user_arr).':'.current($user_arr).'';next($user_arr);echo key($user_arr).':'.current($user_arr).'';next($user_arr);echo key($user_arr).':'.current($user_arr).'';// 输出:// id:1// name:peter// age:18// email:php.cn// reset($user_arr);
注意:如果要回到第一个元素,需要使用指针复位: reset()
while()循环访问
while (true) {echo key($user_arr).':'.current($user_arr).'';if (next($user_arr)){continue;}else{break;}}
for()循环访问(适合索引方式的数组)
$user_arr = [1,'peter',18,'php.cn'];for ( $i = 0; $i < count($user_arr); $i++ ){echo $user_arr[$i] . '';}// 输出:// 1// peter// 18// php.cn
foreach循环访问(均适用)
$user_arr = ['id'=>1, 'name'=>'peter','age'=>18,'email'=>'php.cn'];//输出值foreach ( $user_arr as $value ){echo $value . '';}// 输出:// 1// peter// 18// php.cn//输出键名+值foreach ( $user_arr as $key => $value ){echo $key . ':' . $value . '';}// 输出:// id:1// name:peter// age:18// email:php.cn
foreach + list()循环访问多维数组
$users = [['id' => '1', 'name' => 'peter', 'age' => 18],['id' => '2', 'name' => '灭绝老师', 'age' => 18],['id' => '3', 'name' => '郭靖', 'age' => 18],];//list()用于在一次操作中给一组变量赋值// list($a, $b,$c) = [100,300,500];// echo $a, $b, $c;foreach ($users as list('id'=>$id, 'name'=>$name, 'age'=>$age) ) {printf('id=%s, 姓名=%s, 年龄: %s', $id, $name, $age);}//输出结果://id=1,name=peter,age:18//id=2,name=灭绝老师,age:18//id=3,name=郭靖,age:18
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号