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
559 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!

source:php.cn
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