Convertir une chaîne délimitée par une barre oblique inverse en un tableau associatif
En PHP, une tâche courante consiste à traiter des chaînes formatées avec des paires clé-valeur séparées par un séparateur. Un exemple courant est une chaîne délimitée par une barre oblique inverse, où les paires clé et valeur sont séparées par une barre oblique inverse ().
Utiliser preg_match_all et array_combine
Une méthode efficace consiste à utiliser la fonction preg_match_all pour extraire les clés et les valeurs dans des tableaux séparés, qui sont ensuite combinés à l'aide de array_combine.
preg_match_all("/([^\\]+)\\([^\\]+)/", $string, $p); $array = array_combine($p[1], $p[2]);
Ce modèle d'expression régulière fait correspondre tous les caractères sans barre oblique inverse dans $p[1] (clés) et tous les caractères sans barre oblique inverse dans $p[2] (valeurs).
Personnalisation des séparateurs clé/valeur
Cette approche peut être généralisée pour gérer différentes valeurs-clés séparateurs :
preg_match_all("/ ([^:]+) : ([^,]+) /x", $string, $p); $array = array_combine($p[1], $p[2]);
Remplacez simplement ":" par le séparateur clé-valeur souhaité et "," par le délimiteur de paire souhaité.
Autoriser les délimiteurs variables
Pour autoriser différents délimiteurs, utilisez :
preg_match_all("/ ([^:=]+) [:=]+ ([^,+&]+) /x", $string, $p);
Cela autorise key=value, key2:value2, ou variantes similaires.
Fonctionnalités supplémentaires
Vous pouvez améliorer davantage l'extraction :
Alternative : parse_str
Pour une manipulation pratique des key=value&key2=value2 strings, pensez à utiliser parse_str avec strtr :
parse_str(strtr($string, ":,", "=&"), $pairs);
Considérations
Choisissez la méthode la plus appropriée en fonction de vos besoins et compromis.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!