如何根据 PHP 条件在数组中添加数组?

How to add array inside array based on PHP condition?

我有一个 laravel collection 下面来自:$unitinventory = DB::select('call wh_inventory_list(?)', array('Units'));

[
   {
      "unit_id":"UCL2100001",
      "rr_id":"RR2100001",
      "make":"FAW",
      "chassis_no":"LFWSRXRJ9M1E00004",
      "engine_no":"CA6DM2-42E5153558354",
      "body_type":"TRACTOR HEAD",
      "horse_power":"420HP",
      "cabin_type":"J6P E5",
      "numwheels":"6W",
      "unit_status":"Available",
      "unit_location":null
   },
   {
      "unit_id":"UCL2100002",
      "rr_id":"RR2100002",
      "make":"FAW",
      "chassis_no":"LFWSRXRJ4M1E00007",
      "engine_no":"CA6DM2-42E5153563283",
      "body_type":"TRACTOR HEAD",
      "horse_power":"420HP",
      "cabin_type":"J6P E5",
      "numwheels":"6W",
      "unit_status":"Available",
      "unit_location":null
   }
]

还有一个collection:$modifification = collect(DB::table('pd_jo_bodymodification')->get());

[
   {
      "row_id":2,
      "jo_id":"JO2100003",
      "jo_chassisno":"LFWSRXRJ4M1E00007",
      "jo_convertedbody":"1st conversion",
      "jo_mileage":"test",
      "jo_serviceadvisor":"test",
      "jo_servicerequest":"test",
      "jo_remarks":"test"
   },
   {
      "row_id":4,
      "jo_id":"JO2100004",
      "jo_chassisno":"LFWSRXRJ4M1E00007",
      "jo_convertedbody":"2nd conversion",
      "jo_mileage":"test",
      "jo_serviceadvisor":"test",
      "jo_servicerequest":"test",
      "jo_remarks":"test"
   },
   {
      "row_id":4,
      "jo_id":"JO2100004",
      "jo_chassisno":"LDFDRETFGGF000RE",
      "jo_convertedbody":"OTHER CONVERSION",
      "jo_mileage":"test",
      "jo_serviceadvisor":"test",
      "jo_servicerequest":"test",
      "jo_remarks":"test"
   }
]

我想知道 $unitinventory->chassis_no 是否有修改历史,所以我这样做了:

foreach ($unitinventory as $key => $value) {
      $tmpmodif["conversion"] = $modifification->where('jo_chassisno',$value->chassis_no);
}

其中returns以下:

{
   "conversion":[
      {
         "row_id":2,
         "jo_id":"JO2100003",
         "jo_chassisno":"LFWSRXRJ4M1E00007",
         "jo_convertedbody":"1st conversion",
         "jo_mileage":"test",
         "jo_serviceadvisor":"test",
         "jo_servicerequest":"test",
         "jo_remarks":"test"
      },
      {
         "row_id":4,
         "jo_id":"JO2100004",
         "jo_chassisno":"LFWSRXRJ4M1E00007",
         "jo_convertedbody":"2nd conversion",
         "jo_mileage":"test",
         "jo_serviceadvisor":"test",
         "jo_servicerequest":"test",
         "jo_remarks":"test"
      }
   ]
}

现在我想将转换历史添加到 $unitinventory collection 中,如下所示:

$unitinventory = 
[
   {
      "unit_id":"UCL2100001",
      "rr_id":"RR2100001",
      "make":"FAW",
      "chassis_no":"LFWSRXRJ9M1E00004",
      "engine_no":"CA6DM2-42E5153558354",
      "body_type":"TRACTOR HEAD",
      "horse_power":"420HP",
      "cabin_type":"J6P E5",
      "numwheels":"6W",
      "unit_status":"Available",
      "unit_location":null,
      "conversion":[]
   },
   {
      "unit_id":"UCL2100002",
      "rr_id":"RR2100002",
      "make":"FAW",
      "chassis_no":"LFWSRXRJ4M1E00007",
      "engine_no":"CA6DM2-42E5153563283",
      "body_type":"TRACTOR HEAD",
      "horse_power":"420HP",
      "cabin_type":"J6P E5",
      "numwheels":"6W",
      "unit_status":"Available",
      "unit_location":null,
      "conversion":[
         {
            "row_id":2,
            "jo_id":"JO2100003",
            "jo_chassisno":"LFWSRXRJ4M1E00007",
            "jo_convertedbody":"1st conversion",
            "jo_mileage":"test",
            "jo_serviceadvisor":"test",
            "jo_servicerequest":"test",
            "jo_remarks":"test"
         },
         {
            "row_id":4,
            "jo_id":"JO2100004",
            "jo_chassisno":"LFWSRXRJ4M1E00007",
            "jo_convertedbody":"2nd conversion",
            "jo_mileage":"test",
            "jo_serviceadvisor":"test",
            "jo_servicerequest":"test",
            "jo_remarks":"test"
         }
      ]
   }
]

如何让它成为可能?谢谢!

我用这个方法解决问题:

foreach ($tmpmodif as $key => $value) {
    $unitinventory[$key] = array_merge(  (array)$value,   (array)["conversion"=>$modifification->where('jo_chassisno',$value->chassis_no)]);
}

正在合并数组 foreach