从数组值中删除空格

I have a string which contains numbers separated by commas. It may or may not have a space in between the numbers and a comma in the end. I want to convert it into an array, that I can do using following code:

$string = '1, 2,3,';
$array = explode(',', $string);

However the additional irregular spaces gets in the array values and the last comma causes an empty index (see image below).

enter image description here

How can I remove that so that I get only clean values without spaces and last empty index in the array?

Simply use array_map, array_filter and explode like as

$string = '1, 2,3,';
print_r(array_map('trim',array_filter(explode(',',$string))));

Output:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

Explanation:

Firstly I've split string into an array using explode function of PHP

print_r(explode(',',$string));

which results into

Array
(
    [0] => 1
    [1] =>  2
    [2] => 3
    [3] => 
)

So we need to remove those null values using array_filter like as

print_r(array_filter(explode(',',$string)));

which results into

Array
(
    [0] => 1
    [1] =>  2
    [2] => 3
)

Now the final part need to remove that (extra space) from the values using array_map along with trim

print_r(array_map('trim',array_filter(explode(',',$string))));

SO finally we have achieved the part what we're seeking for i.e.

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

Demo

First perform following on the string -

$string = str_replace(' ', '', $string);

Then use explode.

$string = '1, 2,3,';
$array = explode(',', $string);
$array = array_filter(array_map('trim', $array));

print_r($array);

array_map is a very useful function that allows you to apply a method to every element in an array, in this case trim.

array_filter will then handle the empty final element for you.

This will trim each value and remove empty ones in one operation

$array = array_filter( array_map( 'trim', explode( ',', $string ) ) );

The simple solution would be to use str_replace on the original string and also remove the last comma if it exists with a rtrim so you dont get an empty occurance at the end of the array.

$string = '1, 2,3,';
$string = rtrim($string, ',');
$string = str_replace(' ', '', $string);
$array = explode(',', $string);
print_r($array);

RESULT:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)