0

嗨,我有一个包含对象的 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)
4

1 回答 1

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 对象转换为数组

于 2012-04-05T17:17:00.820 回答