Maison > développement back-end > tutoriel php > Comment puis-je convertir une chaîne de paires clé-valeur en un tableau associatif en PHP ?

Comment puis-je convertir une chaîne de paires clé-valeur en un tableau associatif en PHP ?

Patricia Arquette
Libérer: 2024-12-17 09:53:24
original
663 Les gens l'ont consulté

How Can I Convert a String of Key-Value Pairs into an Associative Array in PHP?

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]);
Copier après la connexion

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]);
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

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));
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal