2016-09-23 77 views
-1

這個函數的揭示是什麼?數組以遞歸方式對象?Php逆轉這個函數?

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

你已經嘗試從對象類型強制轉換數組像'var_dump((數組)$ someobject)'? – Samundra

回答

0

PHP陣列conevrt成一個對象通過它投射到一個對象:

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

手動將數組轉換成一個對象:

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

如果'$ key'是數字,它將創建無法訪問的對象屬性,您是否已經自己嘗試過? – Samundra

+0

是的,這是問題,它創建喜歡$ public - > $ 0 – mahen3d