尝试创建 GPA 计算器。我有一个提交到 php 文件的表单,然后将表单中的所有数据存储在 php array() 中。计算器运行良好,直到我输入相同的值。在我展示一些图片之前,我认为这没有意义:
这是图像中的问题:
因此,在第一张图片中,我输入了一个 A,然后是另一个 A,它在使用 var_dump() 时输出 array(1) { [0]=> float(4.5) }
在第二张图片中, var_dump() 是 array(2) { [0]=> float(4) 1 => float(3.5) }
它正在跳过第一张图像中的第一行……以防万一A在REG中等于4.0,在HONORS中等于4.5。它可能是 array_combine()
这是我的php代码:
//$_POST['grades'] for the grades <option> and $_POST['types'] for the type (REG, HONORS)
foreach(array_combine($_POST['grades'], $_POST['types']) as $code => $count)
{
if ($code == "A")
{
if ($count == "REGULAR")
{
$GradeArray[] = 4.0;
}
else if ($count == "HONORS")
{
$GradeArray[] = 4.5;
}
else if ($count == "COLLEGE")
{
$GradeArray[] = 5.0;
}
}
else if ($code == "B")
{
if ($count == "REGULAR")
{
$GradeArray[] = 3.0;
}
else if ($count == "HONORS")
{
$GradeArray[] = 3.5;
}
else if ($count == "COLLEGE")
{
$GradeArray[] = 4.0;
}
}
else if ($code == "C")
{
if ($count == "REGULAR")
{
$GradeArray[] = 2.0;
}
else if ($count == "HONORS")
{
$GradeArray[] = 2.5;
}
else if ($count == "COLLEGE")
{
$GradeArray[] = 3.0;
}
}
else if ($code == "D")
{
if ($count == "REGULAR")
{
$GradeArray[] = 1.0;
}
else if ($count == "HONORS")
{
$GradeArray[] = 1.5;
}
else if ($count == "COLLEGE")
{
$GradeArray[] = 2.0;
}
}
else if ($code == "F")
{
if ($count == "REGULAR")
{
$GradeArray[] = 0.0;
}
else if ($count == "HONORS")
{
$GradeArray[] = .5;
}
else if ($count == "COLLEGE")
{
$GradeArray[] = 1.0;
}
}
}
可能需要修改整个 foreach() 语句...如果有人这么说,我将再次编写逻辑...
我不想用代码堵塞问题,所以如果您绝对需要 html,只需询问,我将添加编辑。
编辑:我也在想我需要重写逻辑......我以前从未使用过array_combine()......我只需要确保与相关的对应
谢谢您的帮助!