Menu
Coddy logo textTech

Calculating Student's Average

Part of the Logic & Flow section of Coddy's PHP journey — lesson 36 of 68.

challenge icon

Challenge

Easy

You will receive two inputs: a JSON object representing the existing student gradebook and a student's name. The gradebook uses student names as keys, with each student having an "id" and "grades" array containing their test scores.

Read both inputs, convert the JSON string to a gradebook array, locate the specified student, calculate their average grade, and print the result rounded to 2 decimal places.

To calculate the average: sum all grades in the student's grades array and divide by the number of grades.

Input format:

  • First line: A JSON object representing the existing gradebook (example: {"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}})
  • Second line: The student's name (example: Alice)

Expected output: The student's average grade rounded to 2 decimal places (example: 85.00)

Try it yourself

<?php
// Read the gradebook JSON string
$gradebookJson = fgets(STDIN);
// Read the student name
$studentName = trim(fgets(STDIN));

// Convert JSON to array
$gradebook = (array)json_decode($gradebookJson, true);

// TODO: Write your code below
// Find the student, calculate their average grade, and round to 2 decimal places


// Output the result
echo $average;
?>

All lessons in Logic & Flow