Objekt in Array umwandeln

Sasser

Erfahrenes Mitglied
Guten Abend!

Ich nutze die folgende Funktion, um ein Objekt in ein Array umzuwandeln:

PHP:
function buildarray($object) {
	if (is_object ( $object ) == true) {
		settype ( $object, "array" );
	}
	foreach ($object as $key => $value) {
		if ((is_array ( $value ) == true) or (is_object ( $value ) == true)) {
			$array [$key] = buildarray ( $value );
		} else {
			$array [$key] = utf8decode ( $value );
		}
	}
	return $array;
}

Nun zu meinem Problem: Das Objekt stammt von der Funktion simplexml_load_string () und in dem XML gibt es teilweise doppelte gleiche Namen auf der gleichen Ebene. Mein Array sieht nun also nicht mehr wie das Original aus, sondern es wird [0], [1], [2] usw. vor den eigentlichen Key gesetzt. Wie kann man das unterbinden?

Oder habe ich einen kompletten Denkfehler?
 
... und in dem XML gibt es teilweise doppelte gleiche Namen auf der gleichen Ebene. Mein Array sieht nun also nicht mehr wie das Original aus, ...

Wenn ich das richtig verstehe, dann ist dein "Original" auch kein Array.

... , sondern es wird [0], [1], [2] usw. vor den eigentlichen Key gesetzt...

Damit sind die Subarrays eindeutig adressierbar. IM XML können die Elemente durch ihre Position innerhalb des parent-Knotens eindeutig bestimmt werden.

Es gibt kein Array, bei dem der Schlüsselwert mehrmals in einer Ebene vorkommt.
 
Zurück