2011-06-12 95 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 
}