PHP - 生成数组对象的正确方法(手动)

时间:2017-04-19 06:36:19

标签: php arrays object

我正从DB中的对象数组生成新的多维对象数组。

在“数组”之前使用“(object)”是否正确?或者这是一个非常糟糕的解决方案。

$new_results = array();

foreach($result as $assoc_agent)
{
    if(!array_key_exists($assoc_agent->agent_id, $new_results))
    {
        $new_results[$assoc_agent->agent_id] = (object)array(
            'agent_id'      => $assoc_agent->agent_id,
            'agent_name'    => $assoc_agent->agent_name
        );
    }   

    $new_results[$assoc_agent->agent_id]->subordinate_users[] = $assoc_agent->user_id;
}

输出:

Array
(
    [1] => stdClass Object
    (
        [agent_id] => 1
        [agent_name] => Joan Visielsky
        [subordinate_users] => Array
            (
                [0] => 100000
                [1] => 100011
            )

    )
    ....
)

1 个答案:

答案 0 :(得分:0)

Type Casting

  

类型转换的含义是使用变量的值   不同的数据类型。换句话说,类型转换是一种利用它的方法   数据类型变量为不同的数据类型。

$object = (object)$array;

或者您可以使用

$object = json_decode(json_encode($array), FALSE);