<?php class Student { public string $fio; public array $subjects; public string $gender; public string $group; public function __construct(string $fio, array $subjects, string $gender, string $group) { $this->fio = $fio; $this->subjects = $subjects; $this->gender = $gender; $this->group = $group; } public function avg(): float { return array_sum($this->subjects) / count($this->subjects); } } $ivanov = new Student('Панов Владислав Дмитриевич', ['Математика' => 90, 'Русский' => 70, 'Информатика' => 70], 'Мужской', 'ЭУ-219'); $petrov = new Student('Петров Петр Петрович', ['Математика' => 75, 'Русский' => 75, 'Информатика' => 65], 'Мужской', 'ЭУ-220'); $sidorova = new Student('Новокрещенова Анастасия Викторовна', ['Математика' => 95, 'Русский' => 80, 'Информатика' => 85], 'Женский', 'ЭУ-218'); $students = [$ivanov, $petrov, $sidorova]; usort($students, function ($a, $b) { return $b->avg() <=> $a->avg(); }); foreach ($students as $student) { echo $student->fio . " (" . $student->gender . " группа " . $student->group . ") Средний балл: " . number_format($student->avg(), 2) . "<br>"; } ?>
Results:
Новокрещенова Анастасия Викторовна (Женский группа ЭУ-218) Средний балл: 86.67
Панов Владислав Дмитриевич (Мужской группа ЭУ-219) Средний балл: 76.67
Петров Петр Петрович (Мужской группа ЭУ-220) Средний балл: 71.67