Поиск лучшего студента
Часть раздела Логика и управление потоком путешествия по PHP на Coddy — урок 37 из 68.
Задание
ЛегкоВы получите один входной параметр: JSON-объект, представляющий классный журнал. В журнале имена студентов используются в качестве ключей, при этом у каждого студента есть "id" и массив "grades", содержащий их оценки за тесты.
Прочитайте входные данные, преобразуйте строку JSON в массив журнала, найдите студента с самым высоким средним баллом и выведите имя этого лучшего студента.
Чтобы найти лучшего студента: вычислите средний балл для каждого студента, просуммировав его оценки и разделив на их количество, а затем определите, у какого студента самый высокий средний балл.
Формат входных данных: Одна строка, содержащая JSON-объект, представляющий журнал (пример: {"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}})
Ожидаемый результат: Имя студента с самым высоким средним баллом (пример: Bob)
Попробуйте сами
<?php
// Чтение входных данных JSON
$input = fgets(STDIN);
// Преобразование JSON в массив
$gradebook = (array)json_decode($input, true);
// TODO: Напишите свой код ниже
// Вычисление среднего балла для каждого студента
// Поиск студента с самым высоким средним баллом
// Вывод имени лучшего студента
echo $topStudent;
?>Все уроки раздела Логика и управление потоком
1Продвинутые функции
Анонимные функцииЗамыкания и 'use'Стрелочные функцииCallback-функцииИспользование 'call_user_func'Функции переменныхПередача по ссылкеРекурсивные функцииИтоги: ассорти из функций4Многомерные массивы
Создание 2D-массиваДоступ к элементам 2D-массиваИзменение элементов 2D-массиваИтерация с вложенными цикламиДвумерные ассоциативные массивыИтоги: Упражнение «Простая сетка»2Продвинутая работа с массивами
Добавление с помощью 'array_push'Удаление с помощью 'array_pop'Добавление с помощью 'array_unshift'Удаление с помощью 'array_shift'Слияние индексных массивовСлияние ассоциативных массивовИзвлечение с помощью 'array_slice'Поиск значений с 'in_array'Поиск ключей с 'array_search'Итоги: Упражнение «Плейлист»5Журнал успеваемости студентов
Настройка проекта: структура данныхДобавление нового студентаДобавление оценки студентуРасчет среднего балла студентаПоиск лучшего студентаСоздание табеля успеваемости3Сортировка массивов
Сортировка индексных массивов по возрастаниюСортировка индексных массивов по убываниюСортировка ассоциативных массивов по значениюСортировка ассоциативных массивов по ключуСортировка в естественном порядкеПользовательская сортировка с помощью 'usort'Итоги: Сортировка таблицы лидеров