我想测试一个数组的特定索引是否等于另一个数组中的另一个特定索引,但即使两个索引相等,它也始终为false。

<!DOCTYPE html>
<html>
<head><title>PHP Written Test</title></head>
<body>
<?php include 'variables.php';?>
<?php include 'functions.php';?>
<?php

session_start();
$x = 1;
$y = 0;

while ($x <= 20)
{   
    $a = $_POST["question" . $x];
    $b = $_SESSION['correct'][$y];

    if ($a == $b)
    {
        echo "The answer was correct " . "<br><br>";
    }
    else
    {
        echo "The answer was wrong<br><br>";
    }
    echo "The user answer is: " . $a . "<br>";
    echo "The correct answer is: " . $b  . "<br><br>";
    $x++;
    $y++;
}
?>
</body>
</html> 

它输出它总是错的我不明白为什么这不起作用

The answer was wrong

The user answer is: Software programs that can compose, send, and receive email messages
The correct answer is: A service that allows users to send messages and/or documents to each other over an internet network

The answer was wrong

The user answer is: Click the refresh button
The correct answer is: Click the refresh button

The answer was wrong

The user answer is: A copy of the email sent to the recipient emailed to you
The correct answer is: A copy of the email sent to the recipient emailed to you

The answer was wrong

The user answer is: Software enabling the user to organize emails
The correct answer is: A tool used to lookup information on the internet

The answer was wrong

The user answer is: A location that stores saved files and programs
The correct answer is: A location that stores saved files and programs

The answer was wrong

The user answer is: A program that lets your organize data into databases
The correct answer is: A utility program used for managing processes and programs running on the computer

The answer was wrong

The user answer is: A program that infects a computer, copies itself many times using up system resources, and spreads the infection to other computers
The correct answer is: An important part of systems files. It manages the interaction between the user, application programs, and hardware

The answer was wrong

The user answer is: GPU
The correct answer is: CPU

The answer was wrong

The user answer is: Icons
The correct answer is: Icons

The answer was wrong

The user answer is: Composing a new email message and sending it
The correct answer is: Impersonating someone with a similar email address and trying to obtain sensitive information from the recipient

The answer was wrong

The user answer is: Menu Bar
The correct answer is: Address Bar

The answer was wrong

The user answer is: The home page
The correct answer is: The home page

The answer was wrong

The user answer is: Motherboard
The correct answer is: Keyboard

The answer was wrong

The user answer is: Programs that intend to damage a users data and system files or allow an outside attacker to gain access to the computer and steal data
The correct answer is: Programs that intend to damage a users data and system files or allow an outside attacker to gain access to the computer and steal data

The answer was wrong

The user answer is: The message itself
The correct answer is: The 'To' line

The answer was wrong

The user answer is: Desktop
The correct answer is: Computer

The answer was wrong

The user answer is: Internet Explorer
The correct answer is: Internet Explorer

The answer was wrong

The user answer is: User ID, @ symbol, host name
The correct answer is: User ID, @ symbol, host name

The answer was wrong

The user answer is: Explorer
The correct answer is: Explorer

The answer was wrong

The user answer is: Shortcut
The correct answer is: Taskbar

===============>>#1 票数:0 已采纳

我做了肖恩建议和使用的if(trim($ a)== trim($ b))它解决了我的问题。

===============>>#2 票数:0

但即使两个指数相等,它也总是假的

然后,这两个指标是不相等的,要么是因为它们不同的,或者你的脚本是错误的(即不正确地检查东西)。

如果PHP声明某些内容为FALSE,那么它就是FALSE,即使由于PHP的工作方式(例如==和===之间的差异),它也是一些模糊或未知的东西。

我不能直接给你答案,因为我看不到你的会话所持有的原始数据,而是帮助你排除故障(这个和将来的脚本):

我通过你的例子看到你:

用户答案是:单击刷新按钮
正确答案是:单击刷新按钮

它们看起来一样,但PHP并没有将它们解释为相同。
来自DB的一个数据和用户输入的另一个数据 - 例如它们是否相同

检查源代码并比较两者。 突出显示文本,某处可能有胭脂空间。

var_dump()您的会话并比较数据。

在你的循环中手动设置$a$b (而不是会话等),同一个字符串(即它们匹配),看看你是否得到TRUE,即20“答案是真的”。

如果是这样,您的脚本,循环和IF正在处理会话数据。
然后仔细检查会话数据。
检查源代码并再次比较两者。

回应所有内容,检查PHP 实际拥有的数据,而不是它最终在屏幕上输出的内容,而不是您认为它具有的内容。

有一些不同的东西,你只需要找到它。

  ask by Dave Cribbs translate from so

未解决问题?本站智能推荐: