tags:

views:

37

answers:

3

Hi,

I've got a list of data with in the following format:

data\n
data\n
data\n
data\n
data\n

Now I try to explode it into an array with

$array = explode("\n", $dataList);

What happens next is that there is a key with no data, I think it is because of the \n on the end.

Is there a way to explode it so that the last key isn't set?

Thanks!

+4  A: 

Not directly. You can either:

  • Remove the trailing "\n" with trim.
  • Remove the last element of $array with array_pop.
  • Use preg_split instead with the flag PREG_SPLIT_NO_EMPTY.
Artefacto
Yea, I like the trim method, that would probably be better then the array_pop. Nice call there.
Brad F Jacobs
+1  A: 

After you explode, use array_pop() to pop the last item:

$array = explode("\n", $dataList);

array_pop($array);

You can add an if statement using count() and empty() if you want to check if the last item contains something other than a linebreak character, but that should get you what you need.

Brad F Jacobs
+2  A: 

Remove empty values by:

$array = array_filter( $array );

killer_PL
That will also remove entries with "0".
Artefacto