@nevesomostjke

Добавить значение в массив?

Здравствуйте! Отключился мозг.
Подскажите.

Есть такой код:
if (isset($cartItems)) {

            $end1 = [];
            foreach($cartItems as $key=>$value) {
                    if ($key==$request->oem) {
                        $count = $value['count']+$request->count;
                    }
                    else {
                        $count = $request->count;
                    }
                array_push ($end1, array($request->oem => array('count'=>$count)));
            }
            
            //$end1 = array($request->oem => array('count'=>$count));  
            $end = $cartItems+$end1;          
        }
        else {
            $end = [];
            $end = array(array($request->oem => array('count'=>$request->count)));
        }


В $cartItems лежит
Array
(
    [0] => Array
        (
            [6601-02-0002860P] => Array
                (
                    [count] => 1
                )

        )

)


Мне надо сделать следующий алгоритм.
1. Если $cartItems пустой создать новый массив и поместить его в $end
2. Если массив не пустой:
2.1. Если $key совпадает с $request->oem, изменить число count в массиве
2.2. Если $key не совпадает с $request->oem, добавить новую строку в массиве
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Jacome
<?php
if (isset($cartItems)) {

$end1 = [];
foreach ($cartItems as $key => $value) {
if ($key == $request->oem) {
$count = $value['count'] + $request->count;
} else {
$count = $request->count;
}
array_push($end1, array($request->oem => array('count' => $count)));
}

//$end1 = array($request->oem => array('count'=>$count));
$end = $cartItems + $end1;
} else {
$end = [];
$end[] = array(array($request->oem => array('count' => $request->count)));
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы