<?php
$students = array(
'2010'=>array('令狐冲',"59"),
'2011'=>array('林平之',"44"),
'2012'=>array('曲洋',"89"),
'2013'=>array('任盈盈',"92"),
'2014'=>array('向问天',"93"),
'2015'=>array('任我行',"87"),
'2016'=>array('冲虚',"58"),
'2017'=>array('方正',"74"),
'2018'=>array('岳不群',"91"),
'2019'=>array('宁中则',"90"),
);//10个学生的学号、姓名、分数,用数组存储
foreach($students as $key=>$val)
{ //使用循环结构遍历数组,获取学号
echo $key; //输出学号
echo ":";
//循环输出姓名和分数
foreach($val as $v)
{
echo $v;
echo $val;
}
echo "<br />";
}
?>
请问一下,根据我的理解$val对应名字的值,但是并没有输出$val的值,只写了"echo $v;",为什么$val的值就跟着出来了?????
在第一个foreach($students as $key=>$val)中遍历students 分为$key(20..)和 $val
此时$val有两个值(姓名,分数)
在第二个foreach($val as $v)中遍历的是$val 所以echo $v 才把 姓名和分数输出
在第二个foreach中foreach($val as $v),将$val as $v,在循环中打印了echo $v;就相当于是打印了$val