Преобразование многомерного смешанного объекта и массива в массив при сохранении имен объектов в виде ключей - PHP [duplicate]
Возможный дубликат:
преобразовать объект в массив
Позволять'скажем, у меня есть такой массив: (Обратите внимание, что некоторые методы / объекты могут быть защищены, поэтому к ним нужно обращаться в их собственном классе)
array(
0=> objectname{
[method1:protected]=> array(
["key1"] => object2{
[method2]=> array(
0 => "blah"
)
}
)
}
1=> objectname{
[method1:protected]=> array(
["key1"] => object2{
[method2]=> array(
0 => "blah"
)
}
)
}
)
И я хотел преобразовать все это в массив. Я бы обычно использовал это:
protected function _object_to_array($obj){
if(is_object($obj)) $obj = (array) $obj;
if(is_array($obj)) {
$new = array();
foreach($obj as $key => $val) {
$new[$key] = self::_object_to_array($val);
}
}else{
$new = $obj;
}
return $new;
}
Проблема в том, что это не сохраняет имена объектов. Я хотел бы, чтобы имена объектов стали дополнительным ключом, который увеличивает размер массива. Например, замена 0 для имени объекта может сработать, но еще лучше создать что-то вроде этого:
array(
0=> array(
objectname=> array(
...blah blah
)
)
)