オブジェクトにオブジェクト内オブジェクトが...といりこ状になっているオブジェクトの場合は、再帰的に (array) をかける必要があります。便宜的に次のような関数を定義すると楽。
PHP
function obj2arr($obj)
{
if ( !is_object($obj) ) return $obj;
$arr = (array) $obj;
foreach ( $arr as &$a )
{
$a = obj2arr($a);
}
return $arr;
}
引用:スイナシア