Maison >développement back-end >tutoriel php >Comment puis-je convertir efficacement une chaîne clé = valeur séparée par des virgules en un tableau associatif ?

Comment puis-je convertir efficacement une chaîne clé = valeur séparée par des virgules en un tableau associatif ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-04 00:30:11250parcourir

How Can I Efficiently Convert a Comma-Separated Key=Value String into an Associative Array?

Conversion d'une chaîne d'expressions clé = valeur séparées par des virgules en un tableau associatif

Analyse d'une chaîne de paires clé-valeur séparées par des virgules en un tableau associatif peut être une tâche fastidieuse. Bien que la méthode suggérée pour utiliser explosive() et foreach puisse être simple, elle peut s'avérer inefficace pour les chaînes plus grandes.

Une approche plus efficace utilisant des expressions régulières

Une approche plus efficace Une solution élégante et efficace consiste à exploiter les expressions régulières :

$str = "key=value, key2=value2";
preg_match_all("/([^,= ]+)=([^,= ]+)/", $str, $r); 
$result = array_combine($r[1], $r[2]);
var_dump($result);

Cette approche utilise la fonction preg_match_all() pour extraire toutes les correspondances des paires clé-valeur en utilisant le modèle regex ([^,= ] )=([^,= ] ). Les correspondances résultantes sont stockées dans le tableau $r avec les clés stockées dans $r[1] et les valeurs dans $r[2]. Enfin, la fonction array_combine() combine les clés et les valeurs pour créer le tableau associatif souhaité.

L'exemple de chaîne fourni dans la question donnerait le tableau associatif suivant :

array(
  "key" => "value",
  "key2" => "value2"
)

Ceci La méthode offre une solution concise et performante pour analyser les chaînes clé-valeur séparées par des virgules.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn