Heim > Backend-Entwicklung > PHP-Tutorial > Wie konvertiert man in PHP einen durch einen Backslash getrennten String in ein assoziatives Array?

Wie konvertiert man in PHP einen durch einen Backslash getrennten String in ein assoziatives Array?

Susan Sarandon
Freigeben: 2024-11-29 18:17:08
Original
403 Leute haben es durchsucht

How to Convert a Backslash-Delimited String to an Associative Array in PHP?

Umwandeln einer durch Backslashes getrennten Zeichenfolge in ein assoziatives Array

Das Konvertieren einer Zeichenfolge mit durch Backslashes getrennten Schlüssel-Wert-Paaren in ein assoziatives Array ist eine häufige Aufgabe in der PHP-Programmierung. Hier sind einige Ansätze:

Verwendung von preg_match_all und array_combine:

Die effizienteste Option besteht darin, die Funktion preg_match_all mit einem regulären Ausdruck zu verwenden, um die Schlüssel und Werte zu extrahieren. Anschließend kann die Funktion array_combine verwendet werden, um ein assoziatives Array zu erstellen:

preg_match_all("/([^\\]+)\\([^\\]+)/", $string, $p);
$array = array_combine($p[1], $p[2]);
Nach dem Login kopieren

Anpassung an verschiedene Trennzeichen:

Derselbe Ansatz kann verallgemeinert werden, um Variationen gerecht zu werden Schlüsselwert- und Paartrennzeichen. Beispielsweise kann die folgende Regex Doppelpunkte und Kommas als Trennzeichen verarbeiten:

preg_match_all("/ ([^:]+) : ([^,]+) /x", $string, $p);
$array = array_combine($p[1], $p[2]);
Nach dem Login kopieren

Flexible Trennzeichen zulassen:

Das Zulassen beliebiger Trennzeichen bietet eine größere Vielseitigkeit. Mit der folgenden Regex können Schlüssel und Werte durch verschiedene Zeichen getrennt werden:

preg_match_all("/ ([^:=]+) [:=]+ ([^,+&]+) /x", $string, $p);
Nach dem Login kopieren

Alphanumerische Schlüssel einschränken:

Um Schlüssel auf alphanumerische Zeichen zu beschränken, kann die folgende Regex dies tun eingesetzt werden:

preg_match_all("/ (\w+) = ([^,]+) /x", $string, $p);
Nach dem Login kopieren

Stripping Spaces und Anführungszeichen:

Um Leerzeichen und optionale Anführungszeichen aus Schlüsseln und Werten zu entfernen, kann dieser reguläre Ausdruck verwendet werden:

preg_match_all("/ \s*([^=]+) \s*=\s* ([^,]+) (?<!\s) /x", $string, $p);
Nach dem Login kopieren

Konfigurationen im INI-Stil extrahieren:

Zum Extrahieren von Konfigurationen im INI-Stil eignet sich der folgende reguläre Ausdruck nützlich:

preg_match_all("/^ \s*(\w+) \s*=\s* ['\"]?(.+?)['\"]? \s* $/xm", $string, $p);
Nach dem Login kopieren

Alternative: parse_str

Für Zeichenfolgen, die bereits als „key=value&key2=value2“ formatiert sind, kann die Funktion parse_str verwendet werden. Die Kombination mit strtr ermöglicht die Verarbeitung alternativer Trennzeichen:

parse_str(strtr($string, ":,", "=&amp;"), $pairs);
Nach dem Login kopieren

Andere Ansätze:

Obwohl weniger effizient, ist es möglich, die Zeichenfolge manuell aufzulösen und durchzuschleifen das Array, um das assoziative Array zu erstellen. Bei der Profilerstellung stellt sich jedoch häufig heraus, dass diese Methode langsamer ist als der Ansatz mit regulären Ausdrücken.

Das obige ist der detaillierte Inhalt vonWie konvertiert man in PHP einen durch einen Backslash getrennten String in ein assoziatives Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage