我有一個字符串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