2013-04-03 4 views
0

У меня проблема с отображением столбца массива. У меня этот код, чтобы рассчитать оценки для моих учеников: $ AvgV (средний) работает хорошо.Как отображать значения в многомерном массиве?

$AvgV=array(); 
    $Sum = 0; 
    for ($j=1;$j<9;$j++){ 
     for ($k=1;$k<=$NumStudents;$k++){ 
      if (isset($TableGrades[$k][$j])) { 
      $Sum = $Sum + $TableGrades[$k][$j]; 
       } 

     print ("k $k -> j $j " . $TableGrades[$k][$j] . "<br> "); 
      print ("<br>"); 

     } 

     if ($Sum != 0) $AvgV[$j]=round($Sum/$NumGradesV[$j],1); 
     else $AvgV[$j] = '-.-'; 

     $Sum = 0; 

    } 

Когда я сделать распечатку, я получить это:

k1 -> j1 5.5 
k2 -> j1 3 
k3 -> j1 5.5 
k4 -> j1 4.5 
k5 -> j1 5 
k6 -> j1 5.5 
k7 -> j1 5.5 
k8 -> j1 4 
k9 -> j1 6 
k10 -> j1 3 
k11 -> j1 5.5 
k12 -> j1 4 
k13 -> j1 6 
k14 -> j1 5.5 
k15 -> j1 5.5 
k16 -> j1 5.5 
k17 -> j1 5 
k1 -> j2 5.5 
k2 -> j2 5 
k3 -> j2 5.5 
k4 -> j2 4.5 
k5 -> j2 3.5 etc.... 

Я хотел бы сделать некоторые статистические данные, которые нужно знать, например, в колонке 2, как многие студенты получили сорта 4,5 или 3,5 или 5,5, что является группирование классов в новом массиве, как это: Например:

6 5.5 5 4 grades etc.... 
2  3  2 1 students 

Эта функция хорошо работает:

function array_count_values_of($value, $TableauNotes) { 
$counts = array_count_values($TableauNotes); 
return $counts[$value]; 
} 

$TableauNotes = array($TableauNotes[1][6], $TableauNotes[2][6], $TableauNotes[3][6], $TableauNotes[4][6], $TableauNotes[5][6], $TableauNotes[6][6], $TableauNotes[7][6], $TableauNotes[8][6], $TableauNotes[9][6], $TableauNotes[10][6], $TableauNotes[11][6], $TableauNotes[12][6], $TableauNotes[13][6], $TableauNotes[14][6], $TableauNotes[15][6], $TableauNotes[16][6], $TableauNotes[17][6]); 
echo array_reduce($array, function ($v, $n) { return $v + ($n == 6); }, 0); 

Но я не знаю, как вызвать функцию и поместить результат в новый массив. Надеюсь, что мое описание достаточно хорошее. Большое спасибо за вашу помощь.

+0

Вы хотите сохранить результат array_count_values_of() в переменной? – Souleiman

+0

Мне нравится ваш код, но array_count_values ​​может считать только строку и целое число, а в массиве есть числа вроде 4.5 или 5.5. И я не знаю, хороша ли моя функция вызова. $ TableauNotes = $ TableGrades – user2213387

+0

Существует обходное решение для поплавков - см. Этот сайт: agyuku.net/2010/12/array_count_values-for-float/ Это то, что вы ищете? Я могу обновить свой ответ, если это так. – Souleiman

ответ

0

Исходя из того, что я понял, вы хотите сохранить результат вашей функции array_count_values_of в переменной ... так что:

$myarray = array_count_values_of($value, $TableauNotes); 

Это сохранит выход вашей функции в $ MyArray.

Не стесняйтесь комментировать, если я понял ваш вопрос неправильно, удачи!

Смежные вопросы