簡體   English   中英

將字符串拆分為關聯數組(同時保留字符)

[英]Split string into associative array (while maintaining characters)

我試圖弄清楚如何分割像這樣的字符串:

a20r51fx500fy3000

變成一個看起來像這樣的關聯數組:

array(
    'a' => 20,
    'r' => 51,
    'fx' => 500,
    'fy' => 3000,
);

我不認為我可以使用preg_split,因為這會刪除我要分割的字符(我嘗試過/[a-zA-Z]/但顯然沒有按照我的意願去做)。 我希望可以使用某種內置函數來執行此操作,但是如果需要這樣做,我並不介意循環。

任何幫助將非常感激!

多次比賽和PREG_SET_ORDER

做這個:

$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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM