如何在跳过空数组项时内爆数组?
Perl 忽略(跳过)空数组值;PHP似乎没有。join()
implode()
假设我有一个数组:
$array = array('one', '', '', 'four', '', 'six');
implode('-', $array);
收益 率:
one---four--six
而不是(恕我直言,最好):
one-four-six
是否有任何其他内置功能具有我正在寻找的行为?还是会是一个定制的求职者?
Perl 忽略(跳过)空数组值;PHP似乎没有。join()
implode()
假设我有一个数组:
$array = array('one', '', '', 'four', '', 'six');
implode('-', $array);
收益 率:
one---four--six
而不是(恕我直言,最好):
one-four-six
是否有任何其他内置功能具有我正在寻找的行为?还是会是一个定制的求职者?
您可以使用 array_filter()
:
如果未提供回调,则将删除所有等于
FALSE
的输入条目(请参阅转换为布尔值)。
implode('-', array_filter($array));
显然,如果您的数组中有(或任何其他计算结果为 )的值,并且想要保留它,这将不起作用。但是,您可以提供自己的回调函数。0
false
我想你不能认为它是内置的(因为该函数是与用户定义的函数一起运行的),但你总是可以使用array_filter。
像这样:
function rempty ($var)
{
return !($var == "" || $var == null);
}
$string = implode('-',array_filter($array, 'rempty'));