使用PHP中4个不同数组的数据查找平均数/等级

使用PHP中4个不同数组的数据查找平均数/等级,php,Php,我使用4个数组,每个数组包含学生的姓氏和他们在4个不同测试中的成绩。我想做的是找出每个学生的平均成绩,计算并显示他们的平均成绩。我如何从所有4个阵列中找到Smith的平均等级?我对PHP非常陌生,所以任何方向都会很有用。谢谢大家! PHP: 我找到了一种获得平均值的方法,但有谁能告诉我是否有更有效的方法?我为每个学生创建了单独的数组,然后除以计数 $smith = array(98,100,91,75); $johnson = array(67,88,85,81) echo('S

我使用4个数组,每个数组包含学生的姓氏和他们在4个不同测试中的成绩。我想做的是找出每个学生的平均成绩,计算并显示他们的平均成绩。我如何从所有4个阵列中找到Smith的平均等级?我对PHP非常陌生,所以任何方向都会很有用。谢谢大家!

PHP:

我找到了一种获得平均值的方法,但有谁能告诉我是否有更有效的方法?我为每个学生创建了单独的数组,然后除以计数

 $smith = array(98,100,91,75);
   $johnson = array(67,88,85,81)

   echo('Smiths average test score is ' . array_sum($smith) / 4);

假设学生进行了四次测试(如您上面所说),即
$testOne
$testTwo
$testtwree
$testFour
,然后创建如下数组

$array = array('One', 'Two', 'Three', 'Four');
$averageScore = $totalScore / count($array);
声明一个变量以获取总分

$totalScore = 0;
声明要计算其平均分数的学生姓名

$candidate = 'Smith';
使用
foreach
循环求和候选人所有科目的总分

foreach($array as $a){
    $totalScore += ${'test'.$a}[$candidate];
}
最后,像这样计算候选人的平均分数

$array = array('One', 'Two', 'Three', 'Four');
$averageScore = $totalScore / count($array);
以下是完整的代码:

$array = array('One', 'Two', 'Three', 'Four');
$totalScore = 0;
$candidate = 'Smith';
foreach($array as $a){
    $totalScore += ${'test'.$a}[$candidate];
}
$averageScore = $totalScore / count($array);

echo $averageScore;

参考链接:


假设学生进行了四次测试(如您上面所说),即
$testOne
$testTwo
$testThree
$testFour
,然后创建如下数组

$array = array('One', 'Two', 'Three', 'Four');
$averageScore = $totalScore / count($array);
声明一个变量以获取总分

$totalScore = 0;
声明要计算其平均分数的学生姓名

$candidate = 'Smith';
使用
foreach
循环求和候选人所有科目的总分

foreach($array as $a){
    $totalScore += ${'test'.$a}[$candidate];
}
最后,像这样计算候选人的平均分数

$array = array('One', 'Two', 'Three', 'Four');
$averageScore = $totalScore / count($array);
以下是完整的代码:

$array = array('One', 'Two', 'Three', 'Four');
$totalScore = 0;
$candidate = 'Smith';
foreach($array as $a){
    $totalScore += ${'test'.$a}[$candidate];
}
$averageScore = $totalScore / count($array);

echo $averageScore;

参考链接:

你可以这样做

参考资料:

你可以这样做

参考资料:

如果PHP7+

$test[]['Smith'] = 98;
$test[]['Johnson'] = 67;

$test[]['Smith'] = 100;
$test[]['Johnson'] = 85;

$test[]['Smith'] = 78;
$test[]['Johnson'] = 92;

$test[]['Smith'] = 91;
$test[]['Johnson'] = 88;
然后你可以做数学题

$avarage['Smith'] = array_sum(array_column($test, 'Smith'))/count($test);
$avarage['Johnson'] = array_sum(array_column($test, 'Johnson'))/count($test);
甚至做一个函数

function avarage($name, $test)
{
   return array_sum(array_column($test, $name))/count($test);
}
调用函数:

$avarage['Smith'] = avarage('Smith', $test);
$avarage['Johnson'] = avarage('Johnson', $test);
如果PHP7+

$test[]['Smith'] = 98;
$test[]['Johnson'] = 67;

$test[]['Smith'] = 100;
$test[]['Johnson'] = 85;

$test[]['Smith'] = 78;
$test[]['Johnson'] = 92;

$test[]['Smith'] = 91;
$test[]['Johnson'] = 88;
然后你可以做数学题

$avarage['Smith'] = array_sum(array_column($test, 'Smith'))/count($test);
$avarage['Johnson'] = array_sum(array_column($test, 'Johnson'))/count($test);
甚至做一个函数

function avarage($name, $test)
{
   return array_sum(array_column($test, $name))/count($test);
}
调用函数:

$avarage['Smith'] = avarage('Smith', $test);
$avarage['Johnson'] = avarage('Johnson', $test);

您可以构建所有数组的总数组,并循环其中一个以获取学生姓名。
使用“数组中的名称”列从所有学生的分数中获取值并计算平均值。
将这些值添加到关联数组中,以进行验证

$total = [$testOne, $testTwo, $testThree, $testFour];

foreach($total[0] as $name => $val){
    $averages[$name] = array_sum(array_column($total, $name))/count($total);
}
var_dump($averages);
返回:

array(2) {
  ["Smith"]=>
  float(91.75)
  ["Johnson"]=>
  int(83)
}
如果有更多的学生,该方法将捕获所有学生,并仅附加数组


您可以构建一个包含所有数组的总数组,并循环其中一个以获取学生姓名。
使用“数组中的名称”列从所有学生的分数中获取值并计算平均值。
将这些值添加到关联数组中,以进行验证

$total = [$testOne, $testTwo, $testThree, $testFour];

foreach($total[0] as $name => $val){
    $averages[$name] = array_sum(array_column($total, $name))/count($total);
}
var_dump($averages);
返回:

array(2) {
  ["Smith"]=>
  float(91.75)
  ["Johnson"]=>
  int(83)
}
如果有更多的学生,该方法将捕获所有学生,并仅附加数组


修复,抱歉,我是编程新手,只是想寻求帮助。谢谢你,Leo,那么就让每个学生创建另一个数组作为他们自己的数组好吗?或者你的意思是把所有的学生和所有的考试成绩放在一个数组中?修正了,对不起,我是编程新手,只是想寻求帮助。谢谢你,利奥,那么就用每个学生作为他们自己的数组创建另一个数组吧?或者你的意思是把所有的学生和所有的考试成绩放在一个数组中?谢谢你,我感谢你的帮助!天才。谢谢@FunkFortyNiner,尽我最大的努力。:-)最后一个问题Rajdeep,我知道我在哪里声明我想通过声明$candidate来计算哪个人的分数,如果假设班上有15名学生,我需要找到他们所有人的平均值,这种方法是最有效的方法吗?@WCA你是指所有学生的平均值还是每个学生的平均值?@Rajdeep,很抱歉,我不清楚,是的,每个学生的平均分,所以史密斯平均分,约翰逊平均分,菲尔兹平均分等等。谢谢你,我感谢你的帮助!天才。谢谢@FunkFortyNiner,尽我最大的努力。:-)最后一个问题Rajdeep,我知道我在哪里声明我想通过声明$candidate来计算哪个人的分数,如果假设班上有15名学生,我需要找到他们所有人的平均值,这种方法是最有效的方法吗?@WCA你是指所有学生的平均值还是每个学生的平均值?@Rajdeep,很抱歉,我不清楚,是的,每个学生的平均分,史密斯平均分,约翰逊平均分,菲尔兹平均分等等。