【问题标题】:Merge two objects, while one is inside of an array合并两个对象,其中一个在数组内
【发布时间】:2017-04-07 15:50:08
【问题描述】:

我需要使用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 代码。

【问题讨论】:

  • 请看答案。这可以返回一个数组或一个对象。
  • 能否请您也发布所需的输出?

标签: php laravel object merge


【解决方案1】:
<?php
   //Merge the two as an array
   $merged = array_merge($array,(array)$object);
   //As an object
   $merged = (object)$merged;

【讨论】:

  • 恐怕这不起作用,给出一条错误消息:array_merge(): Argument #1 is not an array It is an object retrieved from a query $returnData = Vehicle::like( 'license_plate', $text)->get();
  • 该代码假设您放入的第一个对象是一个数组,看起来您放入了对象,而不是交换函数中的值。在沙盒中测试,效果很好。
猜你喜欢
  • 2016-06-10
  • 2022-01-20
  • 2021-03-08
  • 2020-03-22
  • 2017-02-04
  • 1970-01-01
  • 1970-01-01
  • 2018-11-23
  • 2020-02-04
相关资源
最近更新 更多