Conversion d'une chaîne de paires clé-valeur en un tableau associatif
Problème :
Vous avez un chaîne formatée comme "key1value1key2value2key3value3", et vous souhaitez la convertir en un tableau associatif, où "key1" correspond à "value1", "key2" correspond à "value2", et ainsi de suite.
Solution utilisant des expressions régulières :
La plus rapide et la plus simple La solution implique d'utiliser une expression régulière et array_combine :
preg_match_all("/([^\\]+)\\([^\\]+)/", $string, $p); $array = array_combine($p[1], $p[2]);
Cette expression régulière identifie les paires clé-valeur adjacentes séparées par des barres obliques inverses. Les groupes capturés sont ensuite fusionnés dans un tableau à l'aide de array_combine.
Adaptation à différents délimiteurs :
Cette approche peut être facilement adaptée pour gérer différents délimiteurs clé-valeur et paires. . Par exemple :
# Key/value separated by colons, pair by commas preg_match_all("/([^:]+):([^,]+)/", $string, $p); $array = array_combine($p[1], $p[2]);
Autoriser des délimiteurs variables :
Pour autoriser différents délimiteurs au sein d'une même chaîne, une expression régulière plus flexible peut être utilisée :
preg_match_all("/([^:=]+)[:=]+([^,+&]+)/x", $string, $p);
Autre Approches :
parse_str() avec remplacement de chaîne :
Si la chaîne d'entrée suit déjà le format key=value&key2=value2, vous pouvez utiliser parse_str :
parse_str(strtr($string, ":,", "=&"), $pairs);
Clé/Valeur manuelle Séparation :
Bien que ce soit souvent plus long, vous pouvez également créer manuellement un tableau en utilisant exploser et foreach :
$pairs = array_combine(explode("\", $string, 2, TRUE), explode("\", $string, 2, TRUE));
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!