如果定义了-php,则添加到数组

时间:2011-06-12 22:26:29

标签: php arrays

我有这个代码

$courses = array("name_lic", "name_mes", "name_dou");

如果定义name_lic, name_mes, name_douc,我如何添加到数组?

例如:name_lic已定义,是插入数组,name_mes未定义或为空,则未插入数组,name_dou也是。

基本上数组只能有定义的字符串

我的例子中的

应该是:

$courses = array("name_lic");

4 个答案:

答案 0 :(得分:4)

我猜测“用户插入”是指由于提交表单而在$_POST中显示的值。

如果是这样,那就尝试这样的事情

$courses = array("name_lic", "name_mes", "name_dou");
// Note, changed your initial comma separated string to an actual array

$selectedCourses = array();
foreach ($courses as $course) {
    if (!empty($_POST[$course])) {
        $selectedCourses[] = $course;
    }
}

答案 1 :(得分:2)

你的意思是

if (isset($name_lic)) { 
    $courses[] = $name_lic;
}
对于name_mes,name_dou

...等

答案 2 :(得分:1)

如果值为空字符串,那么

isset将返回TRUE,这显然是您不想要的。尝试

if (!empty($_POST['name_lic'])){
    $courses[] = $_POST['name_lic'];
}

// etc

例如,如果要对$ _POST的所有值执行此操作:

foreach ($_POST as $key => $value){
    if (!empty($value)){
        $courses[$key] = $value;
    }
}

答案 3 :(得分:1)

首先,如果你的代码是:

$courses = array("name_lic, name_mes, name_dou");

然后$ courses是一个只有一个键的数组,你应该像这样删除“”:

$courses = array("name_lic", "name_mes", "name_dou");

现在,如果您想知道数组是否包含值为“name_lic”的键,您应该使用函数in_array(),如下所示:

if (in_array("name_lic", $courses)) {
  //Do stuff
}