从数组或等效数组中删除空值


Remove empty values from array--or equivalent

我有一堆变量要显示,其中一些是空的。有些变量中有空格,我想保留。我想将它们显示为逗号分隔的列表。如果我按顺序回显它们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

对我来说可能是打字错误,但如果有经验的人提出任何建议,我将不胜感激。

不能删除的原因是您没有使用有效的数组。。要使用有效的数组,您需要这样做:

$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)

要转换回字符串,请使用implodehttp://php.net/manual/en/function.implode.php

    var_dump(implode(",", $array))

输出

string 'one,two,six,ten' (length=15)

谢谢:)