drjmrg8766 2014-01-12 22:10
浏览 29
已采纳

将stdClass对象转换为多维数组

I have $positions stdClass Object as below

Array
(
    [0] => stdClass Object
        (
            [id] => 2
            [position] => am
            [label] => Account Manager
        )

    [1] => stdClass Object
        (
            [id] => 6
            [position] => agn
            [label] => Agent
        )

    [2] => stdClass Object
        (
            [id] => 5
            [position] => bdev
            [label] => Business Development
        )

    [3] => stdClass Object
        (
            [id] => 4
            [position] => fin
            [label] => Finance
        )

    [4] => stdClass Object
        (
            [id] => 1
            [position] => hr
            [label] => Human Resource
        )

    [5] => stdClass Object
        (
            [id] => 3
            [position] => it
            [label] => Information Technology
        )

)

I want to convert it as an multidimensional array so I beed ut to return it into a function and reuse it as per need.. something like below

array(

    array (
        'id' => 1,
        'position' => 'admin',
        'label' => 'Administrator'
    ),

    array (
        'id' => 2,
        'position' => 'am',
        'label' => 'Account Manager'
    ),

    array (
        'id' => 3,
        'position' => 'hr',
        'label' => 'Human Resource'
    ),
);

I am not sure what exactly array form would be but I want to return array so I can get entire table and than can use it into the system.

I have tried below but it is not giving output as I want

foreach($positions as $position){
    $array[] = $position->id;
    $array[] = $position->label;
    $array[] = $position->position;
}

echo '<pre>',print_r($array),'</pre>';

Output

Array
(
    [0] => 2
    [1] => Account Manager
    [2] => am
    [3] => 6
    [4] => Agent
    [5] => agn
    [6] => 5
    [7] => Business Development
    [8] => bdev
    [9] => 4
    [10] => Finance
    [11] => fin
    [12] => 1
    [13] => Human Resource
    [14] => hr
    [15] => 3
    [16] => Information Technology
    [17] => it
)

This is obvious output but I need to know how can I get return multidimensional array.

展开全部

  • 写回答

3条回答 默认 最新

  • dream0776 2014-01-12 22:16
    关注

    Your result is flat array because you're adding your elements into array via []. To fix that, add elements as array to your main array, like:

    foreach($positions as $position)
    {
        $array[] = [
           'id'      => $position->id,
           'label'   => $position->label,
           'position'=> $position->position
        ];
    }
    

    In PHP<5.4 there's no possibility to use [] for array definition, so then use array() instead.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 VAE代码如何画混淆矩阵
  • ¥15 求遗传算法GAMS代码
  • ¥15 雄安新区高光谱数据集的下载网址打不开
  • ¥66 android运行时native和graphics内存详细信息获取
  • ¥100 求一个c#通过CH341读取数据的Demo,能够读取指定地址值的功能
  • ¥15 rk3566 Android11 USB摄像头 微信
  • ¥15 torch框架下的强化学习DQN训练奖励值浮动过低,希望指导如何调整
  • ¥35 西门子博图v16安装密钥提示CryptAcquireContext MS_DEF_PROV Error of containger opening
  • ¥15 mes系统扫码追溯功能
  • ¥40 selenium访问信用中国
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部