Wertepaare aus String mit beliebiger länge in ein Array bringen

noisy

Mitglied
Moin,

ich hab hier grade die Aufgabe, einen String der folgenden Syntax in ein Array zu überführen:

PHP:
$string = "Name=Mustermann,Vorname=Max,Alter=24";

Das hab ich nun folgendermassen gebastelt:

PHP:
function split_api_result($string){
	$array = explode(",",$string);
	$array1 = explode("=",$array[0]);
	$array2 = explode("=",$array[1]);
	$array3 = explode("=",$array[2]);
	$data['Name'] = $array1[0];
	$data['Vorname'] = $array1[1];
	$data['Alter'] = $array2[0];
	return $data;
}

und es klappt auch, jedoch muss ich jetzt das ganze noch irgendwie in der Anzahl der Wertepaare variabel und zudem, da ich nicht weiss wie der Feldname heisst, soll das kein numerisches Array mehr sein sondern jeweils den Feldnamen als Feldbezeichnung im Array übernehmen.

Kann mir jemand etwas unter die Arme greifen?

Thx
 
Kleiner Denkanstoß: Das Array, das nach dem ersten Aufruf von explode() erhältst (BTW, $array ist kein sehr aussagekräftiger Variablenname ;)), mit Hilfe einer foreach-Schleife durchlaufen.
 
Eine mögliche Lösung

Geniale Funktion entdeckt:

1. per str_replace alle Kommas durch das &-Zeichen ersetzen
(parse_str sucht nach dem Trenner von HTTP-GET URI's und überführt die Wertepaare in´Variablen, deren Namen gleich der Bezeichnung und deren Inhalt der jeweilg dazugehörende Wert ist, auch arrays lassen sich verarbeiten)
2. mit parse_str($string,$wertearray); Beschreibung parse_str
3 nun mit foreach alles in ein Assoziatives array überführen

PHP:
function split_api_result($string){
	$string = str_replace(",","&",$string);
	parse_str($string,$data);
	foreach ($data as $key=>$value){    
		$finaldata[$key]= $value;																										
	}
	//ausgabe
	foreach ($neudata as $key=>$value){    
		echo "<b>".$key."</b>: ".$value."<br>";																										
	} 
	return $finaldata;
}

bei mir klapperts! :-)
 
Zuletzt bearbeitet:
Zurück