Передать значение поля в переменную по id

108
05 февраля 2021, 19:30

Нужно передать в переменную $Summm1 количество товаров данного заказа ('quantity'),

    $Mazz = end($orderItems);  // последний элемент массива всех заказов
    $Mazz1 = $Mazz['item']['quantity'];  // количество последнего элемента
    $Summm = $Mazz1;
    $Mazz_id = $Mazz['item']['order_id'];  // order_id - id заказа, нужно по нему вытянуть количество
   foreach ($orderItems as $k => $v) {
   $prov = 0;
        foreach ($v as $k1 => $v1) {
           if ($v1 == $Mazz_id) {
            $prov = 1;
          }
          if ($k1 == 'quantity' && $prov == 1) {
              $Summm1 = $Summm + $v1;
          }
      }
}

При таком раскладе количество = 0, подскажите, пожалуйста, как правильно передать количество в переменную $Summm1.

Answer 1

Я так и не понял, зачем вам вложенный цикл, если вы знаете что нужное поле имеет путь $orderItems[$i]['item']['quantity'].
что-то такое надо?

$mazzId = ...;
$filtered = array_filter($orderItems, function($v) use ($mazzId){ 
                   return $v['item']['order_id'] = $mazzId;
               });
$sum = array_sum(array_map(function($v){ return $v['item']['quantity'];}, $filtered));
READ ALSO
Проблема обновления PHP из репозитория Webtatic

Проблема обновления PHP из репозитория Webtatic

Имеется сервер на CentOS 6, где хостится сайт муниципального учрежденияНа этом сервере нужно обновить PHP (с версии 5

86
Coinpayments и yii2 (оплата на сайте)

Coinpayments и yii2 (оплата на сайте)

Мне нужна оплата через сайт coinpaymentЯ сделал контроллер на формирование платежа

118
PHP String to Array

PHP String to Array

подскажите правильное решение по переводу строки в массивЕсть метод класса который возвращает ответ в виде массива `

141
Как получить все цены из торгового каталога Битрикс и вывести их на сайт?

Как получить все цены из торгового каталога Битрикс и вывести их на сайт?

Есть элемент инфоблока - товарУ него 2 типа цены - базовая, и дистрибьютерская

138