2012-11-11 185 views
0

数组我有一个这样的字符串:生成字符串

$str = '35-3|24-6|72-1|16-5'; 

我要生成一个数组:

$arr = array (

    35 => 3, 
    24 => 6, 
    72 => 1, 
    16 => 5 

); 

什么是最好的,最简单的方法是什么?

+5

你'$ arr'不是多维的。 – nkr

+1

阅读关于爆炸功能在PHP – Oras

+1

@Oras的爆炸函数(http://php.net/manual/en/function.explode.php)只能由一个分隔符分割。这不会像OP想要的那样产生一个关联数组。 –

回答

10

你可以试试下面

$str = '35-3|24-6|72-1|16-5'; 

$data = explode("|",$str); 
$arr = array(); 
foreach($data as $value){ 
    $part = explode('-',$value); 
    $arr[$part[0]]=$part[1]; 
} 

var_dump($arr); 
+0

嗨,你能深入阐述一下吗? – jainvikram444

3

尝试

if (preg_match_all('/(\d+)\-(\d*)/', $str, $matches)) { 
    $arr = array_combine($matches[1], $matches[2]); 
}