重複の可能性:
オブジェクトを配列に変換
私がこのような配列を持っているとしましょう:(メソッド/オブジェクトのいくつかは保護されている可能性があるので、それらは独自のクラスでアクセスする必要があることに注意してください)
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;
}
問題は、これがオブジェクト名を保持しないことです。オブジェクト名を、配列を1次元上に上げる追加のキーにしたいと思います。たとえば、objectnameの0を置き換えることは機能する可能性がありますが、次のようなものを作成する方がよいでしょう。
array(
0=> array(
objectname=> array(
...blah blah
)
)
)