跟踪 2 键数组
Keeping track of 2 key array
我正在尝试实现一个投票系统,如果用户登陆特定的投票页面并实际回答了问题,那么将记录 ID 和他们的选项。例如,假设该问题的 id 是 67,他们回答了选项 2,那么我希望数组看起来像这样:67:2
。日志数组数据将保存在 SESSION
变量中,每次用户回答问题时,它都会添加到该数组中。当用户尝试导航到 he/she 已回答的民意调查时,它将显示已回答的选项。
我知道如果这是一个仅包含数字的数组,例如 "3,2,1,5,6"
,我可以使用连接和 in_array
函数,但我该如何对这种类型的数组执行此操作? ("3:1, 2:2, 1:1")
其中第一个数字是 id,第二个数字是选择的选项。我如何使用 if (in_array($id))
连接后它会像这样 "3:1"
?
我会说,你可以这样做:
// Log an answer:
$_SESSION["polls"][$question] = $answer;
这样,它将记录:
{
"polls": {
"question-6": "answer-2",
"question-4": "answer-1"
}
}
所以不会有重复。要检查用户是否已回答,您可以这样做:
in_array("question-6", array_keys($_SESSION["polls"]))
如果用户回答了问题 6,这会给你。
PHP 脚本
<?php
header("Content-type: text/plain"); session_start();
// Log few questions and answers.
$question = "question-67";
$answer = "answer-2";
$_SESSION["polls"][$question] = $answer;
$question = "question-55";
$answer = "answer-1";
$_SESSION["polls"][$question] = $answer;
$question = "question-42";
$answer = "answer-3";
$_SESSION["polls"][$question] = $answer;
// Let's check if the next question, which will be the same one, has been answered or not.
$question = "question-67";
$answer = "answer-2";
if (in_array($question, array_keys($_SESSION["polls"])))
echo "Question has been answered.";
else
echo "Question not answered.";
?>
我得到的输出为:
Question has been answered.
我正在尝试实现一个投票系统,如果用户登陆特定的投票页面并实际回答了问题,那么将记录 ID 和他们的选项。例如,假设该问题的 id 是 67,他们回答了选项 2,那么我希望数组看起来像这样:67:2
。日志数组数据将保存在 SESSION
变量中,每次用户回答问题时,它都会添加到该数组中。当用户尝试导航到 he/she 已回答的民意调查时,它将显示已回答的选项。
我知道如果这是一个仅包含数字的数组,例如 "3,2,1,5,6"
,我可以使用连接和 in_array
函数,但我该如何对这种类型的数组执行此操作? ("3:1, 2:2, 1:1")
其中第一个数字是 id,第二个数字是选择的选项。我如何使用 if (in_array($id))
连接后它会像这样 "3:1"
?
我会说,你可以这样做:
// Log an answer:
$_SESSION["polls"][$question] = $answer;
这样,它将记录:
{
"polls": {
"question-6": "answer-2",
"question-4": "answer-1"
}
}
所以不会有重复。要检查用户是否已回答,您可以这样做:
in_array("question-6", array_keys($_SESSION["polls"]))
如果用户回答了问题 6,这会给你。
PHP 脚本
<?php
header("Content-type: text/plain"); session_start();
// Log few questions and answers.
$question = "question-67";
$answer = "answer-2";
$_SESSION["polls"][$question] = $answer;
$question = "question-55";
$answer = "answer-1";
$_SESSION["polls"][$question] = $answer;
$question = "question-42";
$answer = "answer-3";
$_SESSION["polls"][$question] = $answer;
// Let's check if the next question, which will be the same one, has been answered or not.
$question = "question-67";
$answer = "answer-2";
if (in_array($question, array_keys($_SESSION["polls"])))
echo "Question has been answered.";
else
echo "Question not answered.";
?>
我得到的输出为:
Question has been answered.