PHPでオブジェクトを多次元配列に変換する

PHPは配列を操作する関数が豊富なのでオブジェクトでデータを持っておくよりも多次元配列で持っておいたほうがいい場合が多いです。 そこで、オブジェクトを多次元配列に変換してみましょう

function obj2arr($obj)
{
    if ( !is_object($obj) ) return $obj;

    $arr = (array) $obj;

    foreach ( $arr as &$a )
    {
        $a = obj2arr($a);
    }

    return $arr;
}

再帰的にオブジェクトをarray型にキャストしていく感じですね。 オブジェクトのまま”->”で値を参照できるのが便利な時もあるのですが。