2016-11-23 95 views
1

我需要使用PHP(Laravel)合并2个对象,其中一个是数组,另一个是普通对象,但也包含嵌套对象,有没有简单的方法来做到这一点?合并两个对象,其中一个在数组内

编辑:结果应该是一个单一的对象

[ 
    { 
    "id": 1, 
    "release_date": "1998", 
    "license_plate": "098HBV", 
    "state_id": 1, 
    "type_id": 7, 
    "created_at": "2016-11-18 11:39:19", 
    "updated_at": "2016-11-18 11:39:19", 
    "deleted_at": null 
    } 
] 

{ 
    "id": 1, 
    "parent_id": null, 
    "name": "Chrysler", 
    "state_id": 1, 
    "type_id": 1, 
    "created_at": "2016-11-18 11:39:10", 
    "updated_at": "2016-11-18 11:39:10", 
    "deleted_at": null, 
    "pivot": { 
    "vehicle_id": 1, 
    "brand_id": 1 
    } 
} 

所需的输出应该是:

{ 
    "id": 1, 
    "release_date": "1998", 
    "license_plate": "098HBV", 
    "name": "Chrysler", 

} 

它必须是类似的东西,否则会打破很多连接到第一个对象的JavaScript代码。

+0

请参阅答案。这可以返回一个数组或一个对象。 – ksealey

+1

你可以请张贴所需的输出吗? –

回答

0
<?php 
    //Merge the two as an array 
    $merged = array_merge($array,(array)$object); 
    //As an object 
    $merged = (object)$merged; 
+0

恐怕这不起作用,给出错误消息说: array_merge():参数#1不是数组 它是从查询中检索的对象 $ returnData = Vehicle :: like('license_plate', $文本) - >获得(); –

+0

该代码假设您放入的第一个对象是一个数组,看起来像是放入对象中,交换函数中的值。在沙箱中测试,它工作正常。 – ksealey