Konvertieren einer Zeichenfolge von Schlüssel-Wert-Paaren in ein assoziatives Array
Problem:
Sie haben ein Zeichenfolge formatiert wie „key1value1key2value2key3value3“, und Sie möchten sie in ein assoziatives Array konvertieren, Dabei wird „key1“ auf „value1“, „key2“ auf „value2“ usw. abgebildet.
Lösung mit regulären Ausdrücken:
Die schnellste und einfachste Eine einfache Lösung beinhaltet die Verwendung eines regulären Ausdrucks und array_combine:
preg_match_all("/([^\\]+)\\([^\\]+)/", $string, $p); $array = array_combine($p[1], $p[2]);
Dieser reguläre Ausdruck identifiziert benachbarte Schlüssel-Wert-Paare, getrennt durch Backslashes. Die erfassten Gruppen werden dann mit array_combine zu einem Array zusammengeführt.
Anpassung an verschiedene Trennzeichen:
Dieser Ansatz kann leicht angepasst werden, um verschiedene Schlüsselwert- und Paartrennzeichen zu verarbeiten . Zum Beispiel:
# Key/value separated by colons, pair by commas preg_match_all("/([^:]+):([^,]+)/", $string, $p); $array = array_combine($p[1], $p[2]);
Variierende Trennzeichen zulassen:
Um unterschiedliche Trennzeichen innerhalb einer einzelnen Zeichenfolge zuzulassen, kann ein flexiblerer regulärer Ausdruck verwendet werden:
preg_match_all("/([^:=]+)[:=]+([^,+&]+)/x", $string, $p);
Andere Ansätze:
parse_str() mit String-Ersetzung:
Wenn die Eingabezeichenfolge bereits dem Format key=value&key2=value2 folgt, können Sie parse_str:
parse_str(strtr($string, ":,", "=&"), $pairs);
Manueller Schlüssel/Wert Trennung:
Während es oft länger ist, können Sie ein Array auch manuell mit „explosive“ und „foreach“ erstellen:Das obige ist der detaillierte Inhalt vonWie kann ich in PHP eine Zeichenfolge aus Schlüssel-Wert-Paaren in ein assoziatives Array konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!