如何在php的foreach循环中获取多维数组的键?

5
我需要根据给定的学科,从以下数组中打印出学生的姓名和成绩:
$marks = [
    "john" => ["physics" => 30, "maths" => 55, "chemistry" => 66],
    "jack" => ["physics" => 44, "maths" => 19, "chemistry" => 87],
    "mark" => ["physics" => 77, "maths" => 66, "chemistry" => 67],
];

我知道如果执行 echo $marks['john']['chemistry']; 会打印学生/科目的成绩,但是如何使用 foreach 循环来显示化学成绩的所有学生和其分数呢?

1个回答

5

在php中使用foreach()函数时,可以通过以下方式获取当前项的键值

foreach ($array as $key=>$item){...}

也可以像底部代码一样使用它。
foreach ($marks as $name=>$scores){
    echo $name .":". $scores["chemistry"];
}

请查看演示中代码的结果。

这对我来说是一个启示。我总是使用:foreach $array as $key => $value 来遍历单维数组,但是在使用 foreach $multiarray as $array 时没有停下来思考过第二种情况下也可以得到 $key => $array。非常好,谢谢。 - cdsaenz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接