[英]Split string into associative array (while maintaining characters)
我試圖弄清楚如何分割像這樣的字符串:
a20r51fx500fy3000
變成一個看起來像這樣的關聯數組:
array(
'a' => 20,
'r' => 51,
'fx' => 500,
'fy' => 3000,
);
我不認為我可以使用preg_split,因為這會刪除我要分割的字符(我嘗試過/[a-zA-Z]/
但顯然沒有按照我的意願去做)。 我希望可以使用某種內置函數來執行此操作,但是如果需要這樣做,我並不介意循環。
任何幫助將非常感激!
做這個:
$yourstring = "a20r51fx500fy3000";
$regex = '~([a-z]+)(\d+)~';
preg_match_all($regex,$yourstring,$matches,PREG_SET_ORDER);
$yourarray=array();
foreach($matches as $m) {
$yourarray[$m[1]] = $m[2];
}
print_r($yourarray);
輸出:
Array ( [a] => 20 [r] => 51 [fx] => 500 [fy] => 3000 )
如果您的字符串可以包含大寫字母,請在結束定界符后添加i
標志,使正則表達式不區分大小寫: $regex = '~([az]+)(\\d+)~i';
說明
([az]+)
捕獲到第1組的字母 (\\d+)
將數字捕獲到組1 $yourarray[$m[1]] = $m[2];
為字母創建索引,並分配數字
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.