2012-11-11 177 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]); 
}