2011-06-12 66 views
4

定义我有这样的代码添加到阵列如果-php

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

如何,如果name_lic, name_mes, name_douc定义我可以添加到阵列?

例如:name_lic被定义,然后是插入数组,name_mes未定义或为空然后未插入到数组中,name_dou也被插入。

基本阵列只能有那些在我的例子定义

应弦:

$courses = array("name_lic"); 
+0

你所说的“定义的字符串”是什么意思? – rid 2011-06-12 22:28:29

+0

有一个用户插入的值,在我的情况下,不是空的。只有具有值的字段才会添加到数组中。 – anvd 2011-06-12 22:30:20

+0

“由用户插入”是指“存在于$ _POST'数组中吗?” – Phil 2011-06-12 22:34:27

回答

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; 
    } 
} 
2

你的意思是这样

if (isset($name_lic)) { 
    $courses[] = $name_lic; 
} 

...等,为name_mes, name_dou

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; 
    } 
} 
1

首先,如果你的代码是:

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

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

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

现在,如果你想知道,如果数组包含值“name_lic”你应该使用功能in_array()这样的关键:

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