Analyse de chaînes de valeurs-clés séparées par des virgules dans un tableau associatif
Conversion d'une chaîne d'expressions-valeurs-clés séparées par des virgules en un tableau associatif array présente un défi de programmation commun. Alors que les approches traditionnelles impliquant une analyse et une itération manuelles peuvent sembler fastidieuses, PHP offre une solution plus concise et efficace grâce aux expressions régulières.
L'approche Regexp
Une expression régulière qui peut capturer des paires clé-valeur à partir d'une chaîne séparée par des virgules peut être construit comme suit :
/([^,= ]+)=([^,= ]+)/
Cette expression correspond à n'importe quelle séquence de caractères autres que des espaces, des virgules et des valeurs non égales pour la clé et l'attribue au groupe de capture 1, et de même pour la valeur du groupe de capture 2.
Application de l'expression régulière
Pour effectuer l'analyse, PHP fournit la fonction preg_match_all :
$str = "key=value, key2=value2"; preg_match_all("/([^,= ]+)=([^,= ]+)/", $str, $r);
Cette fonction exécute le expression régulière sur la chaîne d'entrée et stocke les correspondances capturées dans la variable $r. Les correspondances sont regroupées en trois sous-tableaux : la correspondance complète, les clés et les valeurs.
Création du tableau associatif
Pour créer le tableau associatif, la fonction array_combine peut être utilisé :
$result = array_combine($r[1], $r[2]);
Cette fonction prend deux tableaux en entrée et crée un nouveau tableau avec les éléments du premier tableau en tant que clés et les éléments du deuxième tableau en tant que valeurs.
Exemple de sortie
L'exécution du code suivant imprimera le tableau associatif résultant :
var_dump($result);
array(2) { ["key"]=> string(5) "value" ["key2"]=> string(6) "value2" }
En exploitant les expressions régulières, PHP fournit un moyen simple et performant d'extraire des paires clé-valeur d'une chaîne séparée par des virgules et de les convertir en un tableau associatif. Cette approche élimine le besoin d'analyse manuelle et simplifie considérablement le processus.
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!