バックスラッシュで区切られた文字列を連想配列に変換する
PHP の一般的なタスクは、キーと値のペアが区切られて書式設定された文字列を処理することです。セパレータによって。一般的な例は、バックスラッシュで区切られた文字列で、キーと値のペアがバックスラッシュ () で区切られています。
preg_match_all と array_combine の使用
効果的な方法の 1 つは、以下を使用することです。 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]);
「:」を目的のキーと値の区切り文字に置き換え、「,」を目的のペアの区切り文字に置き換えるだけです。
さまざまな区切り文字を許可する
さまざまな区切り文字を許可するには、 use:
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 中国語 Web サイトの他の関連記事を参照してください。