キーと値のペアの文字列を連想配列に変換する
問題:
「key1value1key2value2key3value3」のような形式の文字列を、連想配列。「key1」は「value1」にマップされ、「key2」は「value2」にマップされます。以下同様です。
正規表現を使用した解決策:
最も迅速かつ簡単な解決策には、正規表現と array_combine:
preg_match_all("/([^\\]+)\\([^\\]+)/", $string, $p); $array = array_combine($p[1], $p[2]);
この正規表現を使用することが含まれます。バックスラッシュで区切られた隣接するキーと値のペア。キャプチャされたグループは、array_combine を使用して配列にマージされます。
さまざまな区切り文字への適応:
このアプローチは、さまざまなキーと値およびペアの区切り文字を処理するために簡単に適応できます。 。例:
# Key/value separated by colons, pair by commas preg_match_all("/([^:]+):([^,]+)/", $string, $p); $array = array_combine($p[1], $p[2]);
さまざまな区切り文字の許可:
単一の文字列内で異なる区切り文字を許可するには、より柔軟な正規表現を使用できます:
preg_match_all("/([^:=]+)[:=]+([^,+&]+)/x", $string, $p);
その他アプローチ:
parse_str() と文字列置換:
入力文字列が既に key=value&key2=value2 形式に従っている場合は、parse_str:
parse_str(strtr($string, ":,", "=&"), $pairs);
手動キー/値分離:
多くの場合長くなりますが、explode と foreach を使用して手動で配列を作成することもできます:以上がPHP でキーと値のペアの文字列を連想配列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。