我想要显示一些变量,其中一些是空的。有些变量在我想要保留的空间中。我想将它们显示为逗号分隔列表。如果我按顺序回显它们var1, var2,.var6,.var10,
我会在有空的情况下得到额外的逗号。听起来不像删除额外的逗号那么难,但我的想法没有奏效。
由于我有很多很多这样的,我不想每个条件打印 - 允许放置逗号的第一个或最后一个或迭代地用1个逗号或复杂的东西替换多个逗号...即我我希望找到一种简单的可重复方法,只要出现这种方法就可以使用。
一个想法是将字符串转换为数组并删除空值。我可以删除空格并回显,可以毫无问题地打印var1,var2,,,var8,,,
。但是,我找不到删除逗号的方法,即数组中的空值。
我试过了:
$array = "one,two,,,six,,,ten";
$array= array_filter($array);
foreach($array as $val) {
echo $val;}}
foreach($array as $val) {
if ($val!=""&$val!=NULL) {
echo $val;}}
}
它没有摆脱逗号。没有幸运在网上提出以下建议:
array_flip(array_flip($array); or
$array = array_values($array); or
可能是我的错字,但会感谢经验丰富的任何建议。
答案 0 :(得分:10)
你无法删除的原因是因为你没有使用有效的数组..要使用有效的数组,你需要这样做:
$array = "one,two,,,six,,,ten";
$array = explode(",",$array);
$array= array_filter($array);
var_dump($array);
输出
array
0 => string 'one' (length=3)
1 => string 'two' (length=3)
4 => string 'six' (length=3)
7 => string 'ten' (length=3)
要转换回字符串,请使用implode
http://php.net/manual/en/function.implode.php
var_dump(implode(",", $array))
输出
string 'one,two,six,ten' (length=15)
由于 :)