Pretty annoying, exploding an empty string with – for example space – returns an array with one element, indexed with 0 and containing an empty string:

$string = "";
explode(" ", $string);

returns

array(
  [0] => ''
)

There is a simple workaround that also removes the unnecessary empty elements – array_filter(). This function removes all the array elements whose values evaluate to boolean false:

array_filter(explode(" ", $string));

Returns:

array(
)