我有两个逗号分隔的数组,一个用于服务ID,另一个用于服务数量,例如1,2,3
,用于服务ID,这些是数量5,10,20
,用于服务ID。服务ID 1具有5个数量,ID 2具有10个数量,ID 3具有20个数量。在这段代码中,我正在获取ID的服务,但我不知道如何针对这些ID在循环和保存中设置数量。希望你能回答我的问题。
我想在循环第一次工作时更改$result['service_quantity']
,先是5到10,然后是20,以便我可以保存它。
$checkRecord = Booking::where('id', $saveBooking->id)->get();
$allServicesArr = explode(",", $checkRecord[0]->services_ids);
$service = array();
for ($i = 0; $i < count($allServicesArr); $i++) {
$result = Service::find($allServicesArr[$i]);
if ($result['id'] != '') {
$service[$i]['id'] = $result['id'];
$service[$i]['category_id'] = $result['category_id'];
$service[$i]['event_id'] = $result['event_id'];
$service[$i]['service_name'] = $result['service_name'];
$service[$i]['service_kind'] = $result['service_kind'];
$service[$i]['service_price'] = $result['service_price'];
$service[$i]['service_quantity'] = $result['service_quantity'];
$service[$i]['service_detail'] = $result['service_detail'];
}
$insertDate = new BookedServices();
$insertDate->category_id = $result['category_id'];
$insertDate->event_id = $result['event_id'];
$insertDate->booking_id = $saveBooking->id;
$insertDate->user_id = $userID;
$insertDate->service_id = $result['id'];
$insertDate->bs_name = $result['service_name'];
$insertDate->bs_kind = $result['service_kind'];
$insertDate->bs_price = $result['service_price'];
$insertDate->bs_number = $result['service_number'];
$insertDate->bs_detail = $result['service_detail'];
$insertDate->save();
}
答案 0 :(得分:1)
您可以为此简单地使用内置的array_combine
功能
$id=explode(",", "1,2,3");
$qty=explode(",", "5,10,15");
print_r(array_combine($id, $qty));
结果
Array
(
[1] => 5
[2] => 10
[3] => 15
)
答案 1 :(得分:0)
尝试一下
$id=explode(",","1,2,3");
$qty=explode(",","5,10,15");
foreach($id as $index => $val){
echo "id:".$val." Qty:".$qty[$index]; // id:1 Qty:5
}
答案 2 :(得分:0)
尝试一下。
$checkRecord = Booking::where('id', $saveBooking->id)->get();
$allServicesArr = explode(",", $checkRecord[0]->services_ids);
if(!empty($allServicesArr)){
foreach($allServicesArr as $serviceid){
$result = Service::find($serviceid);
$service[$serviceid]['service_quantity'] = $result['service_quantity'];
}
}
答案 3 :(得分:0)
$checkRecord = Booking::where('id', $saveBooking->id)->get();
$allServicesArr = explode(",", $checkRecord[0]->services_ids);
$allServicesQuantitiesArr = explode(",", $checkRecord[0]->services_quantity);
$service = array();
for ($i = 0; $i < count($allServicesArr); $i++) {
$result = Service::find($allServicesArr[$i]);
if ($result['id'] != '') {
$service[$i]['id'] = $result['id'];
$service[$i]['category_id'] = $result['category_id'];
$service[$i]['event_id'] = $result['event_id'];
$service[$i]['service_name'] = $result['service_name'];
$service[$i]['service_kind'] = $result['service_kind'];
$service[$i]['service_price'] = $result['service_price'];
$service[$i]['service_number'] = $allServicesQuantitiesArr[$i];
$service[$i]['service_detail'] = $result['service_detail'];
}
$insertDate = new BookedServices();
$insertDate->category_id = $result['category_id'];
$insertDate->event_id = $result['event_id'];
$insertDate->booking_id = $saveBooking->id;
$insertDate->user_id = $userID;
$insertDate->service_id = $result['id'];
$insertDate->bs_name = $result['service_name'];
$insertDate->bs_kind = $result['service_kind'];
$insertDate->bs_price = $result['service_price'];
$insertDate->bs_number = $allServicesQuantitiesArr[$i];
$insertDate->bs_detail = $result['service_detail'];
$insertDate->save();
}