我有这个代码
$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 :(得分: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
}