修改$ _REQUEST响应或使用explode在数组中获取正确值的任何替代方法

时间:2013-08-29 13:10:05

标签: php arrays

在我的应用程序中有不同的促销活动,usera可以使用单个或多个选择问题来回答促销活动。我使用以下逻辑,除了一个问题之外它工作正常:

for ($i=0;$i<count($questions);$i++)
{
     if($questions[$i][type_of_question] == 'multiple_choice')
     {
         $options_array = explode(",", $_REQUEST["que".$questions[$i][id]]);
     }

     // Code here which insert answers in database table
 }

这行代码:

$options_array = explode(",", $_REQUEST["que".$questions[$i][id]]);

此代码显示逗号分隔的问题答案。例如:

示例1:test1,test2,test3 [此方案正常]

示例2:是,不,我不感兴趣(板球,足球)

示例2显示了问题,例如如果有,在选择选项内。 Php根据函数中断函数break和值,所以在这种情况下我得到4个数组元素。

Array[0] => yes
Array[1] => no
Array[3] => I am not interested(cricket
Array[4] => footbal

虽然我需要关注:

Array[0] => yes
Array[1] => no
Array[3] => I am not interested(cricket,footbal)

如何解决此问题?有什么建议吗?

1 个答案:

答案 0 :(得分:-1)

您需要修改数据从前端输入的方式:单独使用此代码无法解决此问题。例如,您可以输入yes, no, maybe,它可以是yesnomaybeyesno, maybe

您需要在前端执行一些一致的编码或转义,以便您可以唯一地访问记录。你没有告诉我们它是如何在前面提交的,但仅仅用逗号连接答案是不够的。您可以尝试在字段中转义逗号!