2011-08-24 155 views
0

可能重複以逗號分隔的字符串:
An explode() function that ignores characters inside quotes?分割(含有還包含逗號值)

我有一個樣本問題。這裏是

$str = 'field0,field1,field2,"field3a,field3b,field3c",field4,"field5"'; 

我想這個字符串爆炸數組這樣

$arr[0] = 'field0'; 
$arr[1] = 'field1'; 
$arr[2] = 'field2'; 
$arr[3] = 'field3a,field3b,field3c'; 
$arr[4] = 'field4'; 
$arr[5] = 'field5'; 
+6

你不想'爆炸',但'str_getcsv' – mario

+3

可能重複的[explode()函數,忽略引號內的字符?](http://stackoverflow.com/questions/3264775/an-explode-function-that-ignores-characters-inside-quotes)和[PHP的:我怎樣才能通過逗號分解字符串,但不是逗號在引號內?](http://stackoverflow.com/questions/5132533/php-how-can-i-explode-a-string-by-commas-但是不是wheres-the-commas-are-within-q) – mario

回答

2

使用馬里奧的建議:str_getcsv($海峽, '', ''「);

+0

我錯過了你的示例字符串中的雙引號,贊成Quy的回答。 – gview

+0

field3a,field3b和field3c都是例子。它可以是任何單詞和超過3個字 – Quy

+0

對不起,我的意思是指出馬里奧的評論豎起大拇指。看看str_getcsv。只需通過它的逗號作爲參數,「作爲機箱參數,它應該自動將數據解析到一個數組中,以您想要的方式。」 – gview

2
$str = 'field0,field1,field2,"field3a,field3b,field3c",field4,"field5"'; 
$result = str_getcsv($str, ",", "\""); 
print_r($result); 

打印:

Array 
(
    [0] => field0 
    [1] => field1 
    [2] => field2 
    [3] => field3a,field3b,field3c 
    [4] => field4 
    [5] => field5 
) 
+0

不知道爲什麼我得到了-1的正確答案,但沒關係。 –

相關問題