如何根据 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
。
我有一个 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
。