# 如何计算2个数组的比较百分比？

How can I get a percentage of right answers if I have 2 arrays in PHP or javascript, preferably in PHP?

So, I have these two arrays and I want to compare a quiz result with the correct answers and get a percentage score:

``````\$quiz_results = array( 'q1' => 'no',
'q2' => 'yes',
'q3' => 'no',
)

\$answers = array( 1 => 'yes',
2 => 'no',
3 => 'yes'
)
``````
• 点赞
• 写回答
• 关注问题
• 收藏
• 复制链接分享
• 邀请回答

#### 2条回答

• Run through the answers and compare them to the questions. If they are the same increment the correct answer count.

``````\$quiz_results = array( 'q1' => 'yes',
'q2' => 'yes',
'q3' => 'no',
);
\$answers = array( 1 => 'yes',
2 => 'no',
3 => 'yes'
);

\$correct = 0;
//q + the key should do it. Its easier if they are the same obviously
// correct
\$correct++;
}
}

echo 100 / \$totalquestions * \$correct; //returns 33.333333%
``````
点赞 评论 复制链接分享
• A slightly different approach to the problem

``````\$rating=array_merge(
array_fill_keys( range(0,32), 'Poor' ),
array_fill_keys( range(33,65), 'Moderate' ),
array_fill_keys( range(66,89), 'Above average' ),
array_fill_keys( range(90,100), 'Excellent' )
);
\$quiz_results = array(
'q1' => 'no',
'q2' => 'yes',
'q3' => 'no'
);
1 => 'yes',
2 => 'no',
3 => 'yes'
);

\$i=1;
\$score=0;

while( \$answer = current( \$quiz_results ) ) {
\$i++;
next( \$quiz_results );
}
echo 'Score: '.\$score.'/'.count( \$quiz_results ).' - '.round( abs( ( \$score / count( \$quiz_results ) ) * 100 ),2).'%';
echo '<br />Rating: '. \$rating[ ceil( abs( ( \$score / count( \$quiz_results ) ) * 100 ) ) ];
``````

Will output:

``````You answered: no, The correct answer is: yes