2013-11-20 75 views
0

我有一個數組中的字符串格式。我試圖分裂後的代碼] - []中的數據可能會有所不同,所以我不能使用str_split();如何分割一個字符串後每]

我想保持粘性所有的支架,使他們不切斷,所以我不能用爆炸

謝謝

+0

你試過preg_match_all()http://php.net/manual/en/function.preg-match-all.php? –

+0

預期產量是多少? –

+0

你可以分解爆炸() –

回答

-1

最簡單的方法(如果你不想正則表達式)將使用修剪1來自雙方的炭,然後通過'] ['爆炸。

例子:

$string = "[123][456][789]"; 
$string = substr($string,1,strlen($string)-1); 

$array = explode('][',$string); 
+0

如何刪除第一個[也是最後一個]? –

+0

請檢查更新後的答案。 –

+0

@JA:如果第一個和/或最後一個字符不同,該怎麼辦? –

2

簡單的正則表達式:

$s = '["1","Data","time"] ["2","Data","time"] ["3","Data","time"] ["4","Data","time"]'; 
preg_match_all('/\[[^\]]+\]/', $s, $m); 
print_r($m[0]); 

但實際上它幾乎是JSON,所以:

$s = '["1","Data","time"] ["2","Data","time"] ["3","Data","time"] ["4","Data","time"]'; 
$s = '[' . str_replace('] [', '],[', $s) . ']'; 
print_r(json_decode($s)); 

也許你有一個片段或修改JSON,所以它可能如果你有真正的json會更容易。

+0

某種報復性的投票還是有一些建設性的批評? – AbraCadaver

+0

+1因爲這是我認爲他所要求的。我運行你的代碼,它確實提供了他指定的內容,所以誰知道它爲什麼被低估。也許是json評論?我不知道 –

+0

好吧,它幾乎是json,也許他們從某個地方得到了弦,並且已經在手邊操縱了它。 – AbraCadaver

0
$str = '["1","Data","time"] ["2","Data","time"] ["3","Data","time"] ["4","Data","time"]'; 
$newStr = trim($str,'['); 
$newStr1 = trim($newStr,']'); 
$arr = explode('] [',$newStr1); 
print_r($arr); 
+0

downvote的任何原因。是否測試過代碼? –

+0

「*我想保留所有括號,因此它們不會被切斷,所以我不能使用爆炸*」 – AbraCadaver