PHP字符串到数组转换

时间:2013-11-22 15:26:23

标签: php arrays

我有一个字符串1,2,3,4,5

我将其转换为PHP数组:$arr = explode(',', $myString);

然后我想从我的新阵列中回应它们:

foreach ($arr as $value) {
     echo $value;
}

问题 - 出于某种原因,它在我的阵列开头添加了空格!因此,我们的值为1而不是1,而且前面有空格。

为什么会这样,我怎么能摆脱它?

2 个答案:

答案 0 :(得分:4)

如果您的字符串在开头或结尾包含空格,则可能会发生这种情况。 explode()函数只会在给定的分隔符上拆分字符串,并且不会神奇地处理空格。您可以使用array_map()修剪所有数组元素的空白:

$arr = explode(',', $myString);
$arr = array_map('trim', $arr);

或者您可以在使用正则表达式explode()之前替换空格(或str_replace(),具体取决于具体情况):

$myString = ' 1,2,3,4,5 ';
$myString = preg_replace('/\s+/', '', $myString);

这将删除所有空格,字符串只包含数字和逗号(假设这就是你想要的)。

答案 1 :(得分:1)

字符串开头可能有空格。

无论如何,您可以使用trim()

foreach ($arr as $value) 
{
     echo trim($value);
}

或者您可以在爆炸点使用它:

$arr = explode(',', trim($myString));