多くのシナリオでは、バックスラッシュで区切られたキーと値のペアを含む文字列を連想配列に変換する必要があります。この変換により、対応するキーを使用して個々の値に簡単にアクセスできるようになります。
効果的な方法の 1 つは、preg_match_all および array_combine:
preg_match_all("/([^\\]+)\\([^\\]+)/", $string, $p); $array = array_combine($p[1], $p[2]);
# For key-value separation using ':' and pair separation using ',' preg_match_all("/([^:]+)\\([^\,]+)/", $string, $p); $array = array_combine($p[1], $p[2]);
# Allow different delimiters for keys, values, and pairs preg_match_all("/([^:=]+)[ :=]+([^,+&]+)/", $string, $p);
# Allow only alphanumeric keys preg_match_all("/(\w+)[ :=]+([^,+&]+)/", $string, $p);
parse_str(): 必須キーと値のペアがすでに区切られている前処理された文字列&.
explode() foreach: 展開されたキーと値のペアを手動で反復処理します。これにより、追加のオーバーヘッドが発生する可能性があります。
カスタム ループ:文字列を 1 文字ずつ解析します。explode() アプローチと似ていますが、処理速度が遅くなる可能性があります。
どのアプローチを選択するかは、アプリケーションの特定の要件とパフォーマンスに関する考慮事項によって異なります。以上がバックスラッシュで区切られた文字列を連想配列に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。