2016-09-23 2 views
-1

Was ist die Bedeutung dieser Funktion? Array zum rekursiven Objekt?PHP Umkehrung dieser Funktion?

function obj2array($obj) { 
    $out = array(); 
    foreach ($obj as $key => $val) { 
    switch(true) { 
     case is_object($val): 
     $out[$key] = obj2array($val); 
     break; 
     case is_array($val): 
     $out[$key] = obj2array($val); 
     break; 
     default: 
     $out[$key] = $val; 
    } 
    } 
    return $out; 
} 
+0

Versuchen Sie bereits von Objekt typisieren zu Array wie 'var_dump ((array) $ someobject)'? – Samundra

Antwort

0

PHP-Array conevrt in ein Objekt, indem sie es auf ein Objekt Gießen:

$array = array(
    // ... 
); 
$object = (object) $array; 

manuell das Array in ein Objekt konvertieren:

$object = object; 
foreach ($arr as $key => $value) { 
    $object->{$key} = $value; 
} 
+0

Wenn '$ key' numerisch ist, wird eine Objekteigenschaft erstellt, auf die nicht zugegriffen werden kann. Haben Sie es bereits selbst versucht? – Samundra

+0

ja das war das Problem, es erstellt likes $ public -> $ 0 – mahen3d