繁体   English   中英

Laravel根据查询结果构建一个数组

[英]Laravel build an array from query results

这是我从查询结果中获取的一些对象

{
    {
        "name": "John",
        "notification": "sms"
    },
    {
        "name": "John",
        "notification": "email"
    },
}

从这些结果,我想建立一个像这样的数组

{
   "name":"John",
   "notification":['email', 'sms']
}

谁能照亮我的一天?

假设您的原始对象是一个对象数组,如果您想要一个对象作为对象,则可以执行此操作( $data是您的原始数组):

$result = (object) [ 'name' => $data[0]->name, 'notifications' => [] ];
foreach( $data as $item ) $result->notifications[] = $item->notification;

在php 7上,您也可以执行以下操作:

$result = (object) [ 'name' => $data[0]->name, 'notifications' => array_column( $data, 'notification' ) ];

这两个示例均具有以下结果:

stdClass Object
(
    [name] => John
    [notifications] => Array
        (
            [0] => sms
            [1] => email
        )

)

或者,使用JSON语法:

{"name":"John","notifications":["sms","email"]}

评估演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM