从数组值中删除空格

时间:2015-10-12 12:00:24

标签: php arrays

我有一个字符串,其中包含用逗号分隔的数字。数字和逗号之间可能有也可能没有空格。我想将它转换为数组,我可以使用以下代码:

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

但是,额外的不规则空格会进入数组值,最后一个逗号会导致空索引(请参见下图)。

enter image description here

如何删除它以便我只得到没有空格的干净值和数组中的最后一个空索引?

5 个答案:

答案 0 :(得分:8)

只需使用array_maparray_filterexplode,如

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

<强>输出:

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

<强>解释

首先,我使用PHP的explode函数将字符串拆分为数组

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

导致

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

因此我们需要使用array_filter删除这些空值,如

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

导致

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

现在最后一部分需要使用(extra space)array_map

从值中删除trim
print_r(array_map('trim',array_filter(explode(',',$string))));

最后我们已经达到了我们所寻求的部分,即

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

Demo

答案 1 :(得分:1)

简单的解决方案是在原始字符串上使用/home/ubuntu/mahesh/node_tries/node_modules/q/q.js:155 throw e; ^ TypeError: Cannot read property 'req' of undefined at send (/home/ubuntu/mahesh/node_tries/node_modules/express/lib/response.js:103:17) at _fulfilled (/home/ubuntu/mahesh/node_tries/node_modules/q/q.js:834:54) at self.promiseDispatch.done (/home/ubuntu/mahesh/node_tries/node_modules/q/q.js:863:30) at Promise.promise.promiseDispatch (/home/ubuntu/mahesh/node_tries/node_modules/q/q.js:796:13) at /home/ubuntu/mahesh/node_tries/node_modules/q/q.js:604:44 at runSingle (/home/ubuntu/mahesh/node_tries/node_modules/q/q.js:137:13) at flush (/home/ubuntu/mahesh/node_tries/node_modules/q/q.js:125:13) ,并删除最后一个逗号(如果它与str_replace一起存在,这样你就不会在数组末尾出现空白。< / p>

rtrim

结果:

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

答案 2 :(得分:0)

首先对字符串执行以下操作 -

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

然后使用爆炸。

答案 3 :(得分:0)

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

print_r($array);

array_map是一个非常有用的函数,它允许您将方法应用于数组中的每个元素,在本例中为trim

array_filter将为您处理空的最终元素。

答案 4 :(得分:-1)

这将修剪每个值并在一次操作中删除空值

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