我如何遍历具有多个值的关联数组

时间:2019-06-03 21:28:41

标签: php associative-array

我刚刚开始学习php,但遇到了这个问题。我正在尝试遍历此数组以获取每个键的总值,并输出具有最高编号的学生。非常感谢您的投入

$students = array(
        'Mary' => [20,45,12],
        'Grace' => [40,78,56],
        'John' => [61,37,58]
);

预期的输出应为Grace,但我似乎无法使其正常工作。

2 个答案:

答案 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