Зачем вообще нужен цикл for()
? Нет необходимости перебирать массив $grades
, поскольку вы всегда явно указываете одну пару ключ / значение.
$name
должен быть новым ключом, а $grade
новым значением, поэтому должно быть достаточно следующего:
$grades = ["Jim" => "A+", "Pam" => "B", "Kevin" => "Fail", "Oscar" => "A" ];
$name = $_POST['name'];
$grade = $_POST['grade'];
$grades[$name] = $grade;