У меня есть два массива, разделенных запятыми, один для идентификаторов услуг, а другой для количества услуг, подобных этому 1,2,3 для идентификаторов услуг, а это количества 5,10,20 для идентификаторов услуг. Сервис с идентификатором 1 имеет количество 5, а идентификатор 2 имеет 10 и идентификатор 3 имеет 20 соответственно. В этом коде я получаю услуги идентификаторов, но я понятия не имею, как установить количество против этих идентификаторов в цикле и сохранить. Надеюсь, вы поняли мой вопрос.
Я хочу изменить $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();
}






Попробуй это
$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
}
Вы можете просто использовать встроенную функцию 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
)
$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();
}
Второй параметр
explodeдолжен быть строкой