Сложно с foreach, sum и table (новичок)

#php #html

#php #HTML

Вопрос:

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

У меня есть задание от моего босса включить в нижнюю часть таблицы сумму всех длительностей вызовов, которая является элементом из нее, но не отображается в виде суммы.

Через несколько часов я сдался своему невежеству. Я предполагаю, что самым простым способом должно быть включение этого (возобновленного) раздела для включения значения в массив:


 foreach ($this->call_list as $id => $callsList): ?>

<td class="text-center"><?php echo $this->format->fmt_segundos(array("a" => $callsList['billsec'], "b" => 'hms')); ?></td>

<?php endforeach?>
  

И затем, здесь, я бы поместил код для суммирования всех значений этой переменной:


 <td class="text-center"><?php echo $this->translate("Duration") ?> <?php echo "<br>"; ?>  <label class="label label-info"><?php echo $this->totals['tempo']; ?></label></td>
  

Но я не знаю как. Не могли бы вы, ребята, мне помочь?

Комментарии:

1. Начал использовать array_push, но он говорит, что это должна быть строка … все еще пытаюсь.

2. Это просто случай, когда переменная определяется перед циклом $totalSec=0; , а затем в foreach имеет $totalSec =$callsList['billsec']; , а затем помещается $totalSec в итоговые значения (форматируется по мере необходимости).

3. Спасибо за совет, но я придумал другой способ сделать это. Нашел другой элемент, у которого была сумма, и вроде как скопировал его. =p В любом случае, спасибо, что прошли мимо =)

Ответ №1:

Я не знаю испанского, но я предполагаю, что функция fmt_segundos возвращает длительность в секундах. В этом случае следующий код должен сработать:

 <table>
   <thead>
      <td>id</td><td>Duration</td>
   </thead>
<?php
   $TOTAL= 0;
   foreach ($this->call_list as $id => $callsList){ 
      $a = $this->format->fmt_segundos(array("a" => $callsList['billsec'], "b" => 'hms'));
      $TOTAL  = $a;
      echo '<tr>';
      echo '<td class="text-center">'.$id.'</td>';
      echo '<td class="text-center">';
      echo gmdate("H:i:s", $a); 
      echo '</td>';
      echo '</tr>';
   }
?>
    <tfoot>
        <td>TOTAL</td><td><?=gmdate("H:i:s",$TOTAL)?></td>
    </tfoot>
</table>