У меня есть это:
foreach ($itemsCart as $value) {
$items['itemId' . $value->id] = $value->id;
$items['itemDescription' . $value->id] = $value->name;
$items['itemAmount' . $value->id] = $value->price;
$items['itemQuantity' . $value->id] = $value->quantity;
}
Этот вывод:
[itemId9] => 9
[itemDescription9] => Product
[itemAmount9] => 5.00
[itemQuantity9] => 1
[itemId5] => 5
[itemDescription5] => Other Product
[itemAmount5] => 8.00
[itemQuantity5] => 2
Мне нужен порядковый номер в ключе массива, но в каждом цикле:
[itemId1] => 9
[itemDescription1] => Product
[itemAmount1] => 5.00
[itemQuantity1] => 1
[itemId2] => 5
[itemDescription2] => Other Product
[itemAmount2] => 8.00
[itemQuantity2] => 2
Порядковый номер (начинается с 1) каждой петли foreach …
Если я установлю i ++, я получу:
[itemId1] => 9
[itemDescription2] => Product
[itemAmount3] => 5.00
[itemQuantity4] => 1
[itemId5] => 5
[itemDescription6] => Other Product
[itemAmount7] => 8.00
[itemQuantity8] => 2
А что я могу сделать? Я потерял много часов, пытаясь решить эту проблему .. 🙁
Спасибо
Что вы подразумеваете под Если я установлю i ++, я получу … ?
Потому что что-то подобное должно работать:
$i = 0;
foreach ($itemsCart as $value) {
$i++;
$items['itemId' . $i] = $value->id;
$items['itemDescription' . $i] = $value->name;
$items['itemAmount' . $i] = $value->price;
$items['itemQuantity' . $i] = $value->quantity;
}
Что-то попроще, если ваш $itemCart
ключи являются целыми числами 0, 1, …:
foreach ($itemCart as $key => $value)
{
$items['itemId' . $key] = $value->id;
$items['itemDescription' . $key] = $value->name;
$items['itemAmount' . $key] = $value->price;
$items['itemQuantity' . $key] = $value->quantity;
}
Базовый вложенный массив может быть более подходящим, чем то, что вы пытаетесь сделать:
foreach ($itemsCart as $value) {
$items[$value->id]['itemId'] = $value->id;
$items[$value->id]['itemDescription'] = $value->name;
$items[$value->id]['itemAmount'] = $value->price;
$items[$value->id]['itemQuantity'] = $value->quantity;
}
Вместо использования $ item-> ID, используйте $ i, который, как вы сказали, у вас есть.
$i=1;
foreach ($itemsCart as $value) {
$items['itemId' . $i] = $value->id;
$items['itemDescription' . $i] = $value->name;
$items['itemAmount' . $i] = $value->price;
$items['itemQuantity' . $i++] = $value->quantity;
}
++ увеличивает $ i после того, как он соединен со строкой. Вы можете опустить это и использовать $ i ++ между каждой строкой кода.
Просто используйте другую переменную в качестве счетчика:
$id = 1;
foreach ($itemsCart as $value) {
$items['itemId' . $id] = $value->id;
$items['itemDescription' . $id] = $value->name;
$items['itemAmount' . $id] = $value->price;
$items['itemQuantity' . $id] = $value->quantity;
$id += 1;
}
$i = 1;
foreach ($itemsCart as $value) {
$items['itemId' . $i] = $value->id;
$items['itemDescription' . $i] = $value->name;
$items['itemAmount' . $i] = $value->price;
$items['itemQuantity' . $i] = $value->quantity;
$i++;
}