將反斜線分隔的字串轉換為關聯數組
在PHP 中,常見的任務是處理以鍵值對分隔的格式的字串通過分隔符號。一個常見的範例是反斜線分隔的字串,其中鍵和值對由反斜線 () 分隔。
使用 preg_match_all 和 array_combine
一個有效的方法包括使用preg_match_all函數將鍵和值提取到單獨的數組中,然後使用組合array_combine.
preg_match_all("/([^\\]+)\\([^\\]+)/", $string, $p); $array = array_combine($p[1], $p[2]);
此正則表達式模式將任何非反斜杠字元匹配到$p[1](鍵),並將任何非反斜線字元匹配到$p[2](值)。
自訂鍵/值分隔符號
這種方法可以推廣到處理不同的鍵值分隔符號:
preg_match_all("/ ([^:]+) : ([^,]+) /x", $string, $p); $array = array_combine($p[1], $p[2]);
只需將“:”替換為所需的鍵值分隔符,將“,”替換為所需的對分隔符號。
允許使用不同的分隔符
為了允許不同的分隔符,使用:
preg_match_all("/ ([^:=]+) [:=]+ ([^,+&]+) /x", $string, $p);
這允許key=value、key2: value2 或類似的變體。
附加功能
您可以進一步增強提取:
替代方案:parse_str
為了方便處理key=value&key2=value2 字串,請考慮將parse_str 與strtr:
parse_str(strtr($string, ":,", "=&"), $pairs);
注意事項
以上是在 PHP 中如何將反斜線分隔的字串轉換為關聯數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!