json — Использование & quot; + = & quot; оператор в переполнении стека

У меня есть цикл foreach, который я запускаю через данные JSON. Одним из значений в JSON является число:

{
"apiVersion": "0.1",
"data": {
"offset": 0,
"limit": 50,
"count": 50,
"total": 783,
"reports": [
{
"type": "ROOM_CHARGE",
"data": {
"datetime": "2014-11-10T11:08:08-08:00",
"originator": "265a",
"roomNumber": "265",
"chargeItem": "Premium Services",
"chargeAmountCents": 495
}
},
{
"type": "STB_EVENT_TIMED",
"data": {
"datetime": "2014-11-10T10:38:20-08:00",
"originator": "242b",
"roomNumber": "242",
"eventItem": "Watched movie 31008",
"duration": "P0Y0M0DT0H7M50.827S"}
},
{
"type": "ROOM_CHARGE",
"data": {
"datetime": "2014-11-10T09:35:37-08:00",
"originator": "540a",
"roomNumber": "540",
"chargeItem": "Premium Services",
"chargeAmountCents": 495
}
},

Вы заметите над "ROOM_CHARGE" относится к "chargeAmountCents": 495, Я хотел бы запустить цикл foreach и добавить каждое число вместе как таковое:

Обратите внимание, ниже мой код с $total, Я в основном хочу сложить все сборы за комнату, а затем отразить общее количество в конце. Я могу отформатировать номер сам, у меня просто проблемы с "+=" оператор и не уверен, если он будет использоваться таким образом? Я продолжаю получать "495" когда я echo $total,

<?php foreach($output1['data']['reports'] as $reporting): ?>
<?php if($reporting['type'] == "ROOM_CHARGE") : ?>
<tr>
<td><?php echo 'Room Charge'; ?></td>
<td><?php echo substr($reporting['data']['datetime'], -26, 10) ?></td>
<td><?php echo substr($reporting['data']['datetime'], -14, 8) ?></td>
<td><?php echo ($reporting['data']['roomNumber']) ?>  </td>
<td><?php echo ($reporting['data']['originator']) ?>  </td>
<td><?php echo ($reporting['data']['chargeItem']) ?></td>
<td><?php echo number_format(($reporting['data']['chargeAmountCents'])/100, 2, '.', ',') ?></td>
<td>-</td>
<?php $total = ""; ?>
<?php $total += ($reporting['data']['chargeAmountCents']) ?>
</tr>

1

Решение

Внутри вашего цикла вы делаете <?php $total = ""; ?>, Таким образом, каждый раз, когда вы цикл, вы сброс Общая.

Вам нужно установить $total0, так как это число) вне петля.

<?php $total = 0; ?>
<?php foreach($output1['data']['reports'] as $reporting): ?>
<?php if($reporting['type'] == "ROOM_CHARGE") : ?>
<tr>
<td><?php echo 'Room Charge'; ?></td>
<td><?php echo substr($reporting['data']['datetime'], -26, 10) ?></td>
<td><?php echo substr($reporting['data']['datetime'], -14, 8) ?></td>
<td><?php echo ($reporting['data']['roomNumber']) ?>  </td>
<td><?php echo ($reporting['data']['originator']) ?>  </td>
<td><?php echo ($reporting['data']['chargeItem']) ?></td>
<td><?php echo number_format(($reporting['data']['chargeAmountCents'])/100, 2, '.', ',') ?></td>
<td>-</td>
<?php $total += ($reporting['data']['chargeAmountCents']) ?>
</tr>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]