2015-04-02 91 views
-4

我有这个字符串PHP:字符串转换为数组

[1: boy, 2: girl] 

我想将其转换为一个数组

1=>boy 
2=>girl 
+3

您是否尝试过的东西? – Rizier123 2015-04-02 10:49:43

+0

我试过爆炸(),但它太复杂了 – 2015-04-02 10:56:01

+2

如果你谷歌“PHP字符串数组”,你会从字面上找到你的问题的数百个答案。 – 2015-04-02 10:56:05

回答

1

嗨,你可以使用爆炸办得到所需的输出

$tp = '[1: boy, 2: girl]'; 
$tp = trim($tp,'[]'); 
$new = array(); 
foreach(explode(',',$tp) as $each_elem){ 
    $temp = explode(':',$each_elem); 
    $new[trim($temp[0])] = $temp[1]; 
} 
1

试试这个:

$str = "[5: boy, 8: girl]"; 
$exps = preg_split('/\W/',$str, 0,PREG_SPLIT_NO_EMPTY); 
$size = count($exps); 
for($i=0; $i<$size; $i++) 
    $array[$exps[$i]] = $exps[++$i]; 

出来放:

5=>boy 
8=>girl 
0

简单的正则表达式的解决方案:

preg_match_all('/(\d+): ([^,\]]+)/', $string, $matches); 
$array = array_combine($matches[1], $matches[2]);