0

等級の値をキーとして、等級の名前を値として、1 つの配列に等級の名前を格納しています。

$labels=array(1=>'Insufficient',2=>'Sufficient',3=>'Satisfactory',4=>'Good',5=>'Excellent' );

次に、成績を取得した人のすべてのレコードを格納する別の配列があり、user_id がキー、成績値が値です。

$grades = array( 123 = > 1, 456 => 5 , 789 = > 3);

grade-1 => 5 users, grade-2=>6 usersここで、次のような形式で、各 grade-- の下のレコードを数えたいと思います。

array(1=>5, 2=>6, 3=>2, 4=>2, 5=>1);

これを試してみたところ、未定義のオフセットのエラーが発生しました:

$result = array();

for($i=1;$i<=5;++$i)
{
    foreach($grades as $user_id=>$user_grade)
    {
        $result[$i] = ( $user_grade == $i ) ? $result[$i]+1 : $result[$i];
    }
}

各学年に何人のユーザーがいるかを数えた結果の配列を取得する方法は?

4

2 に答える 2

3

array_count_values()のように聞こえます。

例えば

<?php
$grades = array ( // this array contains no value "1"
   68 => 4, 138 => 4, 189 => 2, 255 => 4,
  297 => 3, 366 => 2, 425 => 4, 465 => 3,
  489 => 5, 580 => 4, 646 => 4, 704 => 5,
  784 => 2, 811 => 4, 897 => 4, 974 => 5,
  1006 => 2, 1093 => 2, 1189 => 2, 1222 => 4
);

$cnt = array_count_values($grades);
$cnt += array(1=>0,0,0,0,0);
ksort($cnt);

print_r($cnt);

プリント

Array
(
    [1] => 0
    [2] => 6
    [3] => 2
    [4] => 9
    [5] => 3
)
于 2012-08-21T08:55:14.517 に答える
0

それを試してみてください :

// $labels = array("Grade Value" => "Grade Name")
$labels=array(1=>'Insufficient',2=>'Sufficient',3=>'Satisfactory',4=>'Good',5=>'Excellent' );

// $grades = array("User Id" => "Grade Value")
$grades = array( 123 => 1, 456 => 5 , 789 => 3);

//OutPUT :  array( "Gread Value " => "No Of Users ")

foreach($labels as $key => $value)
{
    $userCount = 0;
    foreach($grades as $key1=> $value1)
    {
        if($key == $value1)
        {
            $userCount++;
        }
    }

    $result[$key] = $userCount;
}

print_r($result);
于 2012-08-21T09:50:06.047 に答える