簡體   English   中英

如何根據PHP條件在數組內添加數組?

[英]How to add array inside array based on PHP condition?

我在下面有一個 Laravel 集合: $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
   }
]

另一個集合: $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);
}

返回以下內容:

{
   "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集合中,如下所示:

$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合並數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM