将和数组转换为特定格式的对象


Convert and array to object in a specific format

转换此数组:

Array
    (
        [0] => Array
            (
                [TEST] => Array
                    (
                        [name] => John Snow
                        [id] => 2
                    )
                [HELLO] => Array
                    (
                        [stuff] => what 
                        [more] => 0
                    )
            )
        [1] => Array
            (
                [TEST] => Array
                    (
                        [name] => Arya Stark
                        [id] => 3
                    )
                [HELLO] => Array
                    (
                        [stuff] => dsfsdf dfsd 
                        [more] => 3
                    )
            )
        [2] => Array
            (
                [TEST] => Array
                    (
                        [name] => Tyrion Lannister 
                        [id] => 7
                    )
                [HELLO] => Array
                    (
                        [stuff] => test 
                        [more] => 2
                    )
            )
    )

收件人:

stdClass Object
        (
            [1] => stdClass Object
                (
                    [TEST] => stdClass Object
                        (
                            [name] => John Snow
                            [id] => 2
                        )
                    [HELLO] => stdClass Object
                        (
                            [stuff] => what 
                            [more] => 0
                        )
                )
            [2] => stdClass Object
                (
                    [TEST] => stdClass Object
                        (
                            [name] => Arya Stark
                            [id] => 3
                        )
                    [HELLO] => stdClass Object
                        (
                            [stuff] => dsfsdf dfsd 
                            [more] => 3
                        )
                )
            [3] => stdClass Object
                (
                    [TEST] => stdClass Object
                        (
                            [name] => Tyrion Lannister 
                            [id] => 7
                        )
                    [HELLO] => stdClass Object
                        (
                            [stuff] => test 
                            [more] => 2
                        )
                )

        )

每个级别中可以有多个数组。这只是一个伪数据,名称从来都不是TEST或HELLO,可以是任何东西。如果你们需要更多信息,请告诉我!

到目前为止,我拥有的是:

function (&$data, $index) {
        $object = new stdClass();
        $output = array();
        foreach ($data as $key => $value) {
             $object->$key->$index = $value[$index];
         }
    return $object;
 };
<?php
function convert($data)
{
    if (is_array($data))
    {
        $obj = new stdClass();
        foreach ($data as $k => $v)
        {
            if (is_array($v))
            {
                $obj->$k = convert($v);
            }
            else
            {
                $obj->$k = $v;
            }
        }
        return $obj;
    }
}
$data = array(
    array(
        'Test' => array(
            'Name' => 'John Snow',
            'id' => 2,
        ),
        'Hello' => array(
            'Name' => 'what',
            'id' => 3,
        ),
    ),
);
$a = convert($data);
print_r($a);

您应该可以这样做:

$objects = (object)json_decode(json_encode($array));