2013-05-04 92 views
-1

我有幾個變量,我通過多個選擇選項從我的表單之一進入。共有4個選項可供選擇,用戶可以選擇最多全部選項,否則他可以選擇最小選項。 一旦用戶選擇數據被插入數據庫並且成功。我已經使用concate加入所有的變量(選擇4個變量)concatentulding NULL變量

$amenities=$amenities_a.','.$amenities_b.','.$amenities_c.','.$amenities_d; 

output:Helmet,Cherry,fruits,water 

問題:我要上傳這個數據無論用戶使用變量逗號分隔這是工作的罰款每個變量選擇。但是,如果用戶不選擇它生成的變量NULL的任何選項,並且它反映如下(例如,只選擇一個和第一個選擇選項)。

一(第一)選擇的選項:

output shows: Helmet,,, 
output required: Helmet 

我想確保櫃面各自變量NULL它不應該反映在那裏,沒有逗號。嘗試在這裏爆炸會好嗎?

+1

你應該檢查的其他變量isset或不將它們合併成一個變量之前。 – 2013-05-04 05:24:46

+0

-1,因爲這個問題沒有顯示任何研究工作;目前還不清楚或沒有用。 – hakre 2013-05-05 10:29:17

+0

還有一個類似於您先前問自己的問題:[從數組中排除NULL或零值的最大和最小整數](http://stackoverflow.com/questions/16161214/maximum-and-minimum-integer-from- array-excluded-null-or-zero-values) - 我只是對此進行評論,因爲如果你更好地理解PHP數據類型,比如數組的用途以及函數存在於PHP附帶的庫中的數組,你應該能夠更直接地解決你在相當冗長的問題中所問的這些微不足道的問題。只是說,我們都在這裏學習。 – hakre 2013-05-05 10:34:57

回答

1
$amenities= preg_replace("/,+/", ",", $amenities); 
+0

嗨,埃米爾,這就是我需要的!謝謝!! :) – sidd 2013-05-04 06:39:48

+0

如果$ amenities包含3或4個子設施,並且您preg_replace逗號,會發生什麼情況?在您的數據庫中,您將獲得** HelmetCherryfruitswater **而不是**頭盔,櫻桃,水果,水**? – 2013-05-04 06:43:17

+1

$ amenities = rtrim($ amenities,',');用這個來消除最後的逗號! – sidd 2013-05-04 08:45:55

0

與條件語句的幫助和isset功能一樣做到這一點:

$amenities=$amenities_a 
if(isset($amenities_b){ 
    $amenities= $amenities. ' , '. $amenities_b 
} 

和等。