2014-02-21 131 views
2

我想在PHP中將一個字符串分成'名稱'部分(字符串)和'鍵'部分(整數數組)。PHP - 將一個字符串分割成一個數字鍵的數組

例輸入:

$input = "Sum(1, 5, 7)"; 

所需的輸出:

$name = "Sum"; 
$keys = [1, 5, 7]; 

我一直在尋找爆炸,str_split使preg_split,我敢肯定有很多可能的實現。什麼是最優雅的解決方案?

+0

EUH,那'薩姆(1,總和(1,5,7),7) '?預期產出是多少? – HamZa

+0

它總是以格式「單詞」「括號」「逗號分隔數字」「括號」? –

+0

@格里姆,很好的問題。是的,我希望它總是「單詞」「括號」「逗號分隔數字」「括號」。 HamZa的例子將是一個無效的(非法)輸入。該字符串在配置文件中,所以我可以控制有關意外輸入。 – mtmacdonald

回答

6
$input = "Sum(1, 5, 7)"; 

preg_match_all('#(\w+)\((.*?)\)#', $input, $m); 

print_r($m); 

Ideone.com

+0

似乎是一個很好的開始,但實際上它返回'1,5,7'作爲字符串,而不是數組。 – mtmacdonald

+0

從那裏,只是爆炸字符串到一個數組。 – Jon

1

嘗試了這一點:

$input = "Sum(1, 5, 7)"; 

$split1=explode('(',$input); 

$name=$split1[0]; 
echo $name; 
$newk=rtrim($split1[1],')'); 
echo '<br>'; 
$keys=explode(',',$newk); 
print_r($keys) 

Online demo

+1

請將代碼放在答案中,所以答案不純粹是一個鏈接。 – Jon

相關問題