PHP中循环结构之foreach循环语句
在PHP中foreach循环语句,常用于遍历数组,一般有两种使用方式:不取下标、取下标。
(1)只取值,不取下标
- <?php
- foreach (数组 as 值){
- //执行的任务
- }
- ?>
复制代码
(2)同时取下标和值
- <?php
- foreach (数组 as 下标 => 值){
- //执行的任务
- }
- ?>
复制代码
列出所有学生姓名!
有一组以学号为下标,姓名为值的数组,这时候需要遍历数组的姓名。
<?php
$students = array(
'2010'=>'令狐冲',
'2011'=>'林平之',
'2012'=>'曲洋',
'2013'=>'任盈盈',
'2014'=>'向问天',
'2015'=>'任我行',
'2016'=>'冲虚',
'2017'=>'方正',
'2018'=>'不合群',
'2019'=>'宁中则',
);//10个学生的学号和姓名,用数组存储
//使用循环结构遍历数组,获取学号和姓名
foreach($students as $v)
{
echo $v;//输出(打印)姓名
echo "<br />";
}
?>
<?php
$students = array(
'2010'=>'令狐冲',
'2011'=>'林平之',
'2012'=>'曲洋',
'2013'=>'任盈盈',
'2014'=>'向问天',
'2015'=>'任我行',
'2016'=>'冲虚',
'2017'=>'方正',
'2018'=>'不合群',
'2019'=>'宁中则',
);//10个学生的学号和姓名,用数组存储
//使用循环结构遍历数组,获取学号和姓名
foreach($students as $key => $v)
{
echo $key.":".$v;//输出(打印)学号:姓名
echo "<br />";
}
?>
foreach($students as $key =>$v)代表遍历数组每个值,然后将每一个值都显示出来
foreach(表示开始遍历循环)
$students(代表你需要遍历的数组变量名称:可以随意换名称不影响)as必须有(前后注意要空格:不能修改) $key(下标:可以随意更换名称不影响) $V(值:随意更换名称不影响)
ps:注意标点符号,格式,就没问题的
=> 是数组成员访问符号
-> 是对象成员访问符号
key指下标,v指下标所对应的值。$key和$v这种形式就代表申明变量了
array_keys($students) 获取students的key数组
问题的关键点:数组与foreachforeach 语法结构提供了遍历数组的简单方式。$key与$v是形参,你可以理解成是未传值的变量,as是该语法结构形式规范符。就好像算术运算中用+号表示前后者之和。在foreach语法结构中 as 有解析前面数组单元传递值或键值给后面相应的一个或两个形参的意味,本质上是foreach语法结构的一部分。简单点相当于你学英文的语法。foreach仅能够应用于数组和对象。有两种语法: foreach (array_expression as $value)
$students[$key] = $value;所以对于foreach($students as $key => $val),其实$key就是你每个元素的键名,$value是这个键对应的值。foreach会遍历数组中所有的键值对。
|