如果为空$ _POST在foreach循环中赋值

时间:2014-09-23 23:18:26

标签: php

您想建立一个创建调查的程序。我无法弄清楚如何为一个没有答案的问题分配价值。谢谢你的帮助。

$dizi = array();
foreach ( $_POST as $key => $value){
    if(empty($_POST)){
        $_POST="bos"; 
    }
    $dizi[$key] = "'".$value."'"; 
} 

5 个答案:

答案 0 :(得分:1)

你的代码没有意义,试试这个:

$dizi = array();
foreach($_POST as $key => $value) {
    if (empty($value)) {
        $value = 'your value';
    }
    $dizi[$key] = $value;
}

答案 1 :(得分:1)

$ _ POST是associative array 所以你可以通过以下方式访问它:

$bla = $_POST['bla'];

您要做的是将整个数组设置为不起作用的字符串。 将它保存到$ dizi数组时应设置新值。

$dizi = array();
foreach($_POST as $key => $value) {
    $newValue = $value;
    if (empty($value)) {
        $newValue = 'bos';
    }
    $dizi[$key] = $newValue;
    unset($newValue);
}

但这只会检查答案字符串是否为空。所以这只有在所有问题都是强制性的情况下才有效。

答案 2 :(得分:0)

如果我理解正确,你要做的就是:

foreach ( $_POST as $key => $value ) {
    if(empty($value))
        $_POST[$key] = 'This is an unanswered question!';
}

但由于没有从表单中发布空值,因此无法正常工作。

答案 3 :(得分:0)

如果没有从表单中发布,你怎么知道有“未答复”的问题? 您必须从问题列表开始(不能由用户伪造并在服务器端定义)并检查每个问题的答案是否存在于$ _POST中。如果不是 - 为跳过的答案分配你想要的任何内容。

答案 4 :(得分:0)

试试这个:

if(isset($_POST) && (!empty($_POST))){
   foreach ( $_POST as $key => $value ) {
     if(empty($value)){
       $_POST="bos"; 
     } else{
       //put your code
     }

   }
 }