English 中文(简体)
从序列表格中提取值
原标题:Extracting values from serialized form
  • 时间:2012-05-24 15:08:05
  •  标签:
  • php

我有一个页面,从一个我无法控制的序列表接收数据。 数据包括一个数值列表(Exammé questions),然后是每个问题的参数(Sort_Order_1)。 这是问题的答案(Sort_Order_1)。

参数[exam_ questions] 中可能存在按顺序存储的任何问题, 然后为每个问题提供一个“ Sort_ Order_[序号] ” 。 “_[序号] ” 是指在Exam question 中的问题的顺序, 即 101 中的问题为 1, 102 等于 2, 103 等于 3 。 “ Sort_ Order_[序号] 参数可以包含不同种类的数据, 有时包含一个数组 。

我将考试的问题 爆破成一个阵列 里面有一个计数器, 我试图做的是 环绕阵列 然后要求回答值 提交的问题。

例如,当我环绕第一个问题的考试问题时, 我想能够从问题2中提取 Sort_ Order_1, 我想从 Sort_order_2 中提取 Sort_order_2等等。

我在阵列中拥有“$Question_number” 值, 但我一直无法找到一种方法, 来请求:

值 = 美元 Sort_Order_. 问 题_ 数

以下是我迄今尝试过的代码,它将解答问题,但我无法找到如何请求“ Sort_ Order_[序号] ” 值。下面的例子就是裁掉我收到的字符串版本,因为有其他字段被提交 。

<?php

//parse_str($_POST[ Form_Values ]);

parse_str( Exam_Questions=101,102,103&Sort_Order_1=TEST1&Sort_Order_2=TEST2&  Sort_Order_3=TEST3 );

$Exam_Question = (explode(",",$Exam_Questions));

$Question_Number = 1;

foreach ($Exam_Question as $QID) 
{ 

echo $Question_Number .   -   . $QID .  <br / > ;

$Sort = eval( $Sort_Order_  . $Question_Number);

echo $Sort .  <br /> ;

$Question_Number =  (int)$Question_Number + 1;
}

? & gt;

最佳回答

我认为您正在寻找 < a href=>" "http://php.net/ manual/ en/ language. variables. variable.php" rel = "nofollow" >可变变量

<?php
parse_str( Exam_Questions=101,102,103&Sort_Order_1=TEST1&Sort_Order_2=TEST2&  Sort_Order_3=TEST3 );

$questions = explode(  , , $Exam_Questions );

for( $i = 0; $i < count( $questions ); $i++ ) {
    $answerVarName =  Sort_Order_ .( $i + 1 );
    // notice the double $$ 
    echo $questions[$i]. :  .$$answerVarName."
";
}

/*
101: TEST1
102: TEST2
103: TEST3
*/
问题回答

只要修改您的代码, 就可以使用变量变量 :

parse_str( Exam_Questions=101,102,103&Sort_Order_1=TEST1&Sort_Order_2=TEST2&  Sort_Order_3=TEST3 );

$Exam_Question = (explode(",",$Exam_Questions));

$Question_Number = 1;

foreach ($Exam_Question as $QID) 
{ 

echo $Question_Number .   -   . $QID .  <br / > ;

$Sort = ${"Sort_Order_$Question_Number"};

echo $Sort .  <br /> ;

$Question_Number =  (int)$Question_Number + 1;
}

注意 ${"somestring"} 将和指定 $somestring 一样 。

parse_str( Exam_Questions=101,102,103&Sort_Order_1=TEST1&Sort_Order_2=TEST2&  Sort_Order_3=TEST3 );
$questions = explode( , , $Exam_Questions);

$i = 1;
foreach ($questions as $q)
{
    $result =  Sort_Order_  . $i;
    echo $q .   =   . $$result .  <br /> ;
    $i++;
}

产出:

101 = TEST1
102 = TEST2
103 = TEST3




相关问题
Brute-force/DoS prevention in PHP [closed]

I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

定值美元

如何确认来自正确来源的数字。

Generating a drop down list of timezones with PHP

Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

How does php cast boolean variables?

How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...

热门标签