2013-05-04 82 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 
} 

和等。