我有一个字符串1,2,3,4,5
PHP字符串数组转换
我将其转换为一个PHP数组:$arr = explode(',', $myString);
然后我想从我的新阵呼应他们:
foreach ($arr as $value) {
echo $value;
}
问题 - 由于某种原因,它在我的阵列开始时添加了空白区域!因此,而不是1
,我们的价值是1
与它面前的空间。
为什么会发生这种情况,我怎么能摆脱它?
我有一个字符串1,2,3,4,5
PHP字符串数组转换
我将其转换为一个PHP数组:$arr = explode(',', $myString);
然后我想从我的新阵呼应他们:
foreach ($arr as $value) {
echo $value;
}
问题 - 由于某种原因,它在我的阵列开始时添加了空白区域!因此,而不是1
,我们的价值是1
与它面前的空间。
为什么会发生这种情况,我怎么能摆脱它?
在字符串的开头很可能有空格。
无论如何,你可以使用trim()
:
foreach ($arr as $value)
{
echo trim($value);
}
或者你可以在爆炸点使用它:
$arr = explode(',', trim($myString));
只是一个注释。代码中的foreach循环实际上并不会修改该值。您需要通过引用传递'$ value'才能做到这一点。 –
不知道我理解你的评论? 'trim()'在循环内部,紧跟在'echo'之后... – BenM
在你的答案的第一部分中,你实际上并没有修改'$ arr' - 只是打印修剪后的值。使用这段代码,您将传递相同的旧字符串到'explode()'函数,并且结果与以前相同。 –
,如果你的字符串包含在开头或结尾的空白可能发生这种情况。 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);
这将删除所有的空白字符串将只包含数字和逗号(假设这是你想要的)。
谢谢这有助于我:)使用array_map :) – Darline
你的字符串在开始时是否有空格?试试'$ arr = explode(',',trim($ myString));' – andrewsi