2011-01-16 16 views
0

Wie konvertiere ich ein Array von Arrays in ein Array von Objekten?konvertieren assoziative Array zu Array von Objekten

$a = blah // an array of arrays; 

$b= (object) array($a); 

print_r($b); //prints an object of an array of arrays 
+1

Beachten Sie, dass „assoziative Array“ bedeutet nicht „Array von Arrays“. –

+0

Warum brauchen Sie es, um ein Objekt zu deklarieren, wenn es bereits eine Schlüssel-Wert-Sache ist? Ich meine, ist das nicht genug? Sie können bereits auf Sachen da drin mit $ var [$ n] ['key'] verweisen. – Hoatzin

+0

Worüber Sie sprechen, sind keine assoziativen Arrays, sondern mehrdimensionale Arrays. Assoziative Arrays sind wie eine Karte/ein Wörterbuch. – alexn

Antwort

3

Ein assoziatives Array ist kein Array von Arrays. Es ist ein Array, dessen Schlüssel Strings sind. Ein Array von Arrays ist ein multidimensionales Array.

Um ein mehrdimensionales Array in ein Array von Gegenständen, konvertiert jedes Element in ein Objekt zu konvertieren:

foreach(array_keys($a) as $key) 
{ 
    $a[$key] = (object)$a[key]; 
} 
0

versuchen

$array = associative array 

$object = new StdClass(); 

foreach ($array as $key => $value){ 
    $object -> $key = $value; 
} 

print_r ($object); 

dies für ein eindimensionales Array ist. Wenn es multidimensional ist, müssen Sie es in eine rekursive Funktion ändern.