Почему мой сгруппированный массив иногда генерирует неверные данные для определенных полей внутри Foreach?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Почему мой сгруппированный массив иногда генерирует неверные данные для определенных полей внутри Foreach?

Сообщение Anonymous »

У меня есть функция Laravel, которая обрабатывает массив элементов доставки и группирует их по DeliveryID для создания структурированного массива доставок. Каждая доставка включает такие сведения, как элементы, промежуточные итоги и URL-адрес extra_fields, созданный с использованием DeliveryID. Однако я столкнулся с проблемой, когда URL-адрес extra_fields иногда включает неверный идентификатор доставки.
Вот функция:

Код: Выделить всё

public function getDeliveries($delivery_items)
{
$deliveries = [];

foreach ($delivery_items as $delivery_item) {
if (isset($deliveries[$delivery_item->DeliveryID])) {
$items = $deliveries[$delivery_item->DeliveryID]['items'];
$subtotal = $deliveries[$delivery_item->DeliveryID]['subtotal'];
} else {
$delivery_array = [
'cust_ref' => $delivery_item->DeliveryID,
'ship_first_name' => $delivery_item->Delivery_First_Name,
'ship_last_name' => $delivery_item->Delivery_Last_Name,
'ship_address_1' => $delivery_item->Delivery_Address_1,
'ship_address_2' => $delivery_item->Delivery_Address_2,
'ship_city' => $delivery_item->Delivery_City,
'ship_state' => $delivery_item->Delivery_State,
'ship_zip' => $delivery_item->Delivery_Zipcode
];

if ($this->hasExtraField($delivery_item)) {
$order_id = $delivery_item->DeliveryID;
$limited_scope_key = config("services.example_api.key");
$delivery_array['extra_fields']['api_link'] = "https://api.example.com/orders/{$order_id }";
}

$deliveries[$delivery_item->DeliveryID] = $delivery_array;

$items = [];
$subtotal = 0;
}

$items[] = [
'item_no' => $delivery_item->ItemID,
'item' => $delivery_item->Item_Number,
'description' => $delivery_item->Item_Description,
'price' => $delivery_item->Item_Price,
'quantity' => $delivery_item->Item_Quantity
];

$subtotal += $delivery_item->Item_Total;

$deliveries[$delivery_item->DeliveryID]['items'] = $items;
$deliveries[$delivery_item->DeliveryID]['subtotal'] = $subtotal;
$deliveries[$delivery_item->DeliveryID]['grand_total'] = $subtotal;
}

return $deliveries;
}
Что может привести к тому, что URL-адрес extra_fields будет содержать неверный идентификатор доставки? Есть ли лучший способ предотвратить это?

Подробнее здесь: https://stackoverflow.com/questions/792 ... fic-fields
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»