投射阵列超出第一级

时间:2012-04-05 17:06:39

标签: php arrays casting

嗨我有一个带有对象的std类对象,当我把它作为数组转换时,只有第一级更改为数组。是否有将子对象转换为数组的原因?

的var_dump($ heyo);

object(stdClass)#167 (27) { 
    ["uid"]=> object(stdClass)#166 (1) { 
        ["1"]=> int(15)

的var_dump((阵列)($ heyo));

array(27) { 
    ["uid"]=> object(stdClass)#166 (1) { 
        ["1"]=> int(15)

1 个答案:

答案 0 :(得分:1)

我在if-not-true-then-false.com

找到了此功能
function objectToArray($d) {
    if (is_object($d)) {
        // Gets the properties of the given object
        // with get_object_vars function
        $d = get_object_vars($d);
    }

    if (is_array($d)) {
        /*
        * Return array converted to object
        * Using __FUNCTION__ (Magic constant)
        * for recursive call
        */
        return array_map(__FUNCTION__, $d);
    }
    else {
        // Return array
        return $d;
    }
}

它会递归地将stdClass对象转换为数组