Разница между значениями в цикле - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь вычислить разницу между значениями массива в PHP в цикле while.Изначально я использовал цикл foreach, используя (next) и (prev), но он не очень хорошо работал.

То, что я пытаюсь сейчас, на самом деле работает, но проблема в том, что вычисленное значение должно на самом делепоявиться на следующей строке таблицы.Вот таблица и HTML:

        <table table id="meter_entries" class="table table-striped table-hover dt-responsive"><thead>
            <tr>
                <th>ID</th>
                <th>Date</th>
                <th>Company Code</th>
                <th>Oil Height</th>
                <th>Water Height</th>
                <th>Total Volume</th>
                <th>Difference</th>
                <th>Actions</th>
            </tr>
            </thead>
            <?php 
            $s = $stock_automatic; $i=0; $count = count($s); 
            while($i < $count){ 
              ?>
              <tr>
                <td><?php echo $s[$i]['id']; ?></td>
                <td><?php echo $s[$i]['timess']; ?></td>
                <td><?php echo $s[$i]['company_code']; ?></td>
                <td><?php echo $s[$i]['oil_height']; ?></td>
                <td><?php echo $s[$i]['water_height']; ?></td>
                <td><?php echo $s[$i]['total_volume']; ?></td>
                <td><?php $oldvol = $s[$i-1]['total_volume']; $currvol = $s[$i]['total_volume'];  $diff =  $oldvol - $currvol; echo $diff; ?></td>
                <td>
                    <a href="<?php echo site_url('stock_automatic/edit/'.$s[$i]['id']); ?>" class="btn btn-info btn-xs"><span class="fa fa-pencil"></span> Edit</a> 
                    <a href="<?php echo site_url('stock_automatic/remove/'.$s[$i]['id']); ?>" class="btn btn-danger btn-xs"><span class="fa fa-trash"></span> Delete</a>
                </td>
              </tr>
              <?php 
               $i++; 
            } 
            ?>
        </table>

Вот вывод: Table

1 Ответ

0 голосов
/ 23 мая 2018

Кажется, что ваша проблема в том, что вы используете таблицы данных, и ваш массив $s фактически упорядочен в противоположном направлении, чем это показано в вашем примере.

Чтобы получить правильные значения, вы должны изменить свой кодна следующий

<?php if ($i==$count-1){
    echo '0';
}
else { 
    $oldvol = $s[$i+1]['total_volume']; $currvol = $s[$i]['total_volume'];  
    $diff =  $currvol - $oldvol; echo $diff;
} ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...