Я работаю с несколькими массивами, один из которых имеет ключи, которые являются productid, а значение является объектом, содержащим объект доктрины этого продукта. Аналогично, у меня есть план с индексом, являющимся идентификатором плана. Для этого цикла цикла мне нужно пройти и индивидуально настроить счета-фактуры для каждой пары плана-продукта (количество всегда будет одинаковым между ними, за исключением случаев, когда пользователь приобретает план для уже принадлежащего устройства). Очевидно, это несколько сложно, поэтому я не совсем уверен, как сформулировать этот вопрос. Произошла ошибка в прокомментированной строке «Уведомление: Неопределенный индекс»Имея проблему с ключами массива, неопределенный индекс
for ($i = 0; $i < $totalInvoices; $i++) {
if ($i == $planQuantity[key($plans)]) {
next($plans);
}
if ($i == $productQuantity[key($products)]) {
next($products);
}
$data = array(
'planId' => key($plans),
//below here, I'm thinking at key($products) is where the error occurs
'productId' => key($products) != 0 ? key($products) : $plans[key($plans)]->getPricingTier()->getProductId(),
'userId' => $this->userId,
'paymentMethodId' => $paymentMethodId
);
if ($order['hasProduct'] || isset($order['activating'])) {
if (!isset($order['activating'])) {
$planModel->createDevicePlan($data);
$productAmount = $products[key($products)]->getAmount();
} else {
$data['deviceId'] = $order['activating']['inventoryId'];
$planModel->createDevicePlan($data, date('Y-m-d'));
$productAmount = 0;
}
} else {
$productAmount = 0;
}
if ($iteration % 5 == 0 && $order['hasShipping']) {
$invoiceShippingAmount = $billingModel->getShippingAmount($shippingOptionsId);
} else {
$invoiceShippingAmount = 0;
}
$salesData = array(
'paymentMethodsId' => $paymentMethodId,
'planAmount' => $plans[key($plans)]->getAmount(),
'planId' => key($plans),
'productAmount' => $productAmount,
'productId' => key($products),
'shippingAddressesId' => $shippingAddressId,
'shippingAmount' => $invoiceShippingAmount,
'shippingOptionsId' => $shippingOptionsId,
'transactionId' => $transactionId,
'userId' => $this->userId
);
$iteration++;
$billingModel->createInvoice($salesData);
}
Любая помощь была бы принята с благодарностью.
Я запутался о роли '$ planQuantity' и' $ productQuantity' массивы –
planQuantity имеет индекс с planid, а затем количество планов для итерации через productQuantity одинаково, но с productId как индекс – jonathonh