Как взорвать массив, разделенный запятыми, в цикле for?

У меня есть два массива, разделенных запятыми, один для идентификаторов услуг, а другой для количества услуг, подобных этому 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();
}
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
136
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Попробуй это

$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 
}

Второй параметр explode должен быть строкой

potiev 27.07.2019 12:27

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

Другие вопросы по теме