2011/05/02

[PHP] convert Object to Array

測試webservice發現回傳回來的值為Object,如下:
[schema] => stdClass Object
        (
            [element] => stdClass Object
                (
                    [complexType] => stdClass Object
                        (
                            [choice] => stdClass Object
                                (
                                    [element] => stdClass Object
                                        (
                                            [complexType] => stdClass Object
                                                (
                                                    [sequence] => Array
                                                        (
                                                            [a] => 0
                                                            [b] => 1
                                                            => 2
                                                            [d] => 3
                                                            [e] => 4                                                            
                                                        )

                                                )
                                        )
                                )
                        )
                )
        )
我一時之間也不知道要如何是好,上傳搜尋一下,發現一個不錯的function,可以將Object 轉換成 Array,我使用後沒什麼問題提供給大家參考
function std_class_object_to_array($stdclassobject)
{
   $_array = is_object($stdclassobject) ? get_object_vars($stdclassobject) : stdclassobject;

foreach ($_array as $key => $value) {
$value = (is_array($value) || is_object($value)) ? std_class_object_to_array($value) : $value;
$array[$key] = $value;
}

    return $array;
}

使用方法如下
$test=std_class_object_to_array($schema);
$a=trim($test[element][complexType][choice][element][complexType][sequence]['a']);
這樣就可以取出a的值了

沒有留言:

發佈留言