2013-11-22 84 views
0

我有一個字符串1,2,3,4,5PHP字符串數組轉換

我將其轉換爲一個PHP數組:$arr = explode(',', $myString);

然後我想從我的新陣呼應他們:

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

問題 - 由於某種原因,它在我的陣列開始時添加了空白區域!因此,而不是1,我們的價值是1與它面前的空間。

爲什麼會發生這種情況,我怎麼能擺脫它?

+1

你的字符串在開始時是否有空格?試試'$ arr = explode(',',trim($ myString));' – andrewsi

回答

1

在字符串的開頭很可能有空格。

無論如何,你可以使用trim()

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

或者你可以在爆炸點使用它:

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

只是一個註釋。代碼中的foreach循環實際上並不會修改該值。您需要通過引用傳遞'$ value'才能做到這一點。 –

+0

不知道我理解你的評論? 'trim()'在循環內部,緊跟在'echo'之後... – BenM

+0

在你的答案的第一部分中,你實際上並沒有修改'$ arr' - 只是打印修剪後的值。使用這段代碼,您將傳遞相同的舊字符串到'explode()'函數,並且結果與以前相同。 –

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); 

這將刪除所有的空白字符串將只包含數字和逗號(假設這是你想要的)。

+0

謝謝這有助於我:)使用array_map :) – Darline