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

use*_*310 1 php arrays

我有一堆我想要显示的变量,其中一些是空的.有些变量在我想要保留的空间中.我想将它们显示为逗号分隔列表.如果我按顺序回显它们,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;}}
}
Run Code Online (Sandbox Code Playgroud)

它没有摆脱逗号.在网上提出以下建议没有运气:

array_flip(array_flip($array); or
$array = array_values($array); or
Run Code Online (Sandbox Code Playgroud)

可能是我的错字,但会感谢经验丰富的任何建议.

Bab*_*aba 10

你无法删除的原因是因为你没有使用有效的数组..要使用有效的数组,你需要这样做:

$array = "one,two,,,six,,,ten";
$array = explode(",",$array);
$array= array_filter($array);

var_dump($array);
Run Code Online (Sandbox Code Playgroud)

产量

array
  0 => string 'one' (length=3)
  1 => string 'two' (length=3)
  4 => string 'six' (length=3)
  7 => string 'ten' (length=3)
Run Code Online (Sandbox Code Playgroud)

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

    var_dump(implode(",", $array))
Run Code Online (Sandbox Code Playgroud)

产量

string 'one,two,six,ten' (length=15)
Run Code Online (Sandbox Code Playgroud)

谢谢 :)