Perl's join()
ignores (skips) empty array values; PHP's implode()
does not appear to.
Suppose I have an array:
$array = array('one', '', '', 'four', '', 'six');
implode('-', $array);
yields:
one---four--six
instead of (IMHO the preferable):
one-four-six
Any other built-ins with the behaviour I'm looking for? Or is it going to be a custom jobbie?
You can use array_filter()
:
If no callback is supplied, all entries of input equal to
FALSE
(see converting to boolean) will be removed.
implode('-', array_filter($array));
Obviously this will not work if you have 0
(or any other value that evaluates to false
) in your array and you want to keep it. But then you can provide your own callback function.