我刚刚开始学习php,但遇到了这个问题。我正在尝试遍历此数组以获取每个键的总值,并输出具有最高编号的学生。非常感谢您的投入
$students = array(
'Mary' => [20,45,12],
'Grace' => [40,78,56],
'John' => [61,37,58]
);
预期的输出应为Grace,但我似乎无法使其正常工作。
答案 0 :(得分:1)
您不必循环。只需计算所有总数
$totals = array_map('array_sum', $students);
然后输出总数最大的数组的键。
echo array_keys($totals, max($totals))[0];
答案 1 :(得分:0)
像这样的事情可能假设所有年级都是正的
$students = array(
'Mary' => [20,45,12],
'Grace' => [40,78,56],
'John' => [61,37,58]
);
$highest_grade = 0;
$higest_person = "";
foreach($students as $key => $value) {
$max = max($value);
if ($highest_grade <= $max) {
$highest_grade = $max;
$highest_person = $key;
}
}
echo $highest_person . '->' . $highest_grade;
输出正在使用http://phptester.net/
Grace->78