验证PHP表达式

验证PHP表达式,php,Php,我的PHP代码是: $userAnswers = array( // you would get these values via $_POST["answers"] "s1" => array( "q1" => $_POST['S1Q1'], "q2" => $_POST['S1Q2'] ), "s2" => array( "q1"

我的PHP代码是:

    $userAnswers = array(   // you would get these values via $_POST["answers"]
        "s1" => array(
            "q1" => $_POST['S1Q1'],
            "q2" => $_POST['S1Q2']
        ),
        "s2" => array(
               "q1" => $_POST['S2Q1'],
               "q2" => $_POST['S2Q2'],
               "q3" => $_POST['S2Q3'],
               "q4" => $_POST['S2Q4']
        ),
        "s3" => array(
               "q1" => $_POST['S3Q1'],
               "q2" => $_POST['S3Q2'],
               "q3" => $_POST['S3Q3'],
               "q4" => $_POST['S3Q4'],
               "q5" => $_POST['S3Q5']
        ),
    );

    $q001 = $_POST['S1Q1'];
    $q002 = $_POST['S1Q2'];
    $q003 = $_POST['S2Q1'];
    $q004 = $_POST['S2Q2'];
    $q005 = $_POST['S2Q3'];
    $q006 = $_POST['S2Q4'];
    $q007 = $_POST['S3Q1'];
    $q008 = $_POST['S3Q2'];
    $q009 = $_POST['S3Q3'];
    $q010 = $_POST['S3Q4'];
    $q011 = $_POST['S3Q5'];

$savearray = array($q001, $q002, $q003, $q004, $q005, $q006, $q007, $q008, $q009, $q010, $q011);

$_SESSION['annual'] = $savearray;
我想如果我有很多问题,并且我已经进入了两次帖子,并且正在考虑如何用以下内容替换第二次出现的
$\u POST[]
,那将是非常乏味和耗时的:

$userAnswers[$s][$q]
$q001
开始向前的顺序是否正确?这样,
$\u POST[]
只调用一次

比如说:

$q001 = $userAnswers[$s][$q];
$q002 = $userAnswers[$s][$q];
$q003 = $userAnswers[$s][$q];
$q004 = $userAnswers[$s][$q];
$q005 = $userAnswers[$s][$q];
$q006 = $userAnswers[$s][$q];
$q007 = $userAnswers[$s][$q];
$q008 = $userAnswers[$s][$q];
$q009 = $userAnswers[$s][$q];
$q010 = $userAnswers[$s][$q];
$q011 = $userAnswers[$s][$q];
认为我可能必须使用
foreach
语句

foreach () { }

类似这样的工作原理:

$userAnswers["s1"]["q1"]
For循环:

for ($sNumber = 1; $sNumber <= 2 ; $sNumber+1){
    for ($qNumber = 1; $qNumber <= 2 ; $qNumber+1){
        $sTemp = "s" + $sNumber;
        $qTemp = "q" + $qNumber;
        echo $userAnswers[$sTemp][$qTemp];
    }
}

for($sNumber=1;$sNumber根据您输入/输出结果的方式对其进行自定义

<form action="" method="post">
<input name="s1[1]" type="text" value="">
<input name="s1[]" type="text" value="">
<input name="s2[1]" type="text" value="">
<input name="s2[]" type="text" value="">
<input name="jello" type="submit" value="send">
</form>



<?php        

foreach ($_POST['s1'] as $k=>$v)
{
echo "Qs1 answer $k is $v";

}

foreach ($_POST['s2'] as $k=>$v)
{
echo "Qs2 answers $k is $v";

 }
?>


在PHP中查找“循环”?请注意只接受您期望的POST值-您希望将它们与模式匹配,或者使用其他方法检查它是否是您期望的输入。否则,您的脚本可能容易受到SQL注入攻击。因此类似这样:
trim(strip_标记(stripslashes($\u POST['S1Q1'))
虽然它们是单选按钮,但还是为了安全起见才这样做。我没有使用SQL,只是在将输入与答案表进行比较后发送电子邮件。因此我不需要使用foreach?我想混淆的是,我没有尝试在任何地方显示结果。请查看我更新的问题。我想混淆的是,我没有尝试ng以在任何地方显示结果。请查看我的更新问题。