從逗號分隔的字串中解析鍵值表達式
將逗號分隔的鍵值表達式字串轉換為關聯數組是PHP 的常見任務。一種簡單的方法可能涉及將字串分解為數組,修剪每個元素,然後使用另一次分解將每個元素分離為鍵和值。但是,有一種更有效的方法可以使用正規表示式來完成此操作。
給定一個像「key=value, key2=value2」這樣的字串,以下是如何使用正規表示式來解析它:
$str = "key=value, key2=value2"; preg_match_all("/([^,= ]+)=([^,= ]+)/", $str, $r); $result = array_combine($r[1], $r[2]); var_dump($result);
正規表示式模式/([ ^,= ] )=([^,= ] )/ 匹配任何非空格、非逗號和非等號字符,後面跟著等號(=),後面接著另一個非空格、非逗號和非等號字元序列。然後使用 preg_match_all 函數來匹配字串中的模式並捕獲數組 ($r) 中的匹配組。最後,使用 array_combine 函數合併第一個和第二個捕獲組($r[1] 和 $r[2])作為關聯數組的鍵和值。
這種方法有效地解析了 key-單一正則表達式中的值表達式匹配,無需多個數組轉換或循環。結果是一個整齊構造的關聯數組,其中每個鍵映射到其各自的值。
以上是如何在 PHP 中有效率地解析逗號分隔字串中的鍵值對?的詳細內容。更多資訊請關注PHP中文網其他相關文章!