За последние 24 часа нас посетили 18239 программистов и 1607 роботов. Сейчас ищут 1520 программистов ...

Вывод элементов массива в виде таблицы

Тема в разделе "Прочие вопросы по PHP", создана пользователем heavytresh, 20 ноя 2016.

  1. heavytresh

    heavytresh Новичок

    С нами с:
    21 май 2014
    Сообщения:
    11
    Симпатии:
    0
    Код (Text):
    1. public function exportWatchingHoursPDF($channels, $from, $to, $timeFrom, $timeTo, $device_id, $group_name) {
    2.         $pdf = tmvc::instance()->controller->export->createPDF('Channels List');
    3.  
    4.         // Add some data
    5.    
    6.         $test=$from !== null ? $from . ' ' . $timeFrom : substr($this->db->query_one('select min(start_time) from log')['min(start_time)'], 0, 10) . ' ' . $timeFrom;
    7.         $pdf->Cell(50,10,'From', $from !== null ? $from . ' ' . $timeFrom : substr($this->db->query_one('select min(start_time) from log')['min(start_time)'], 0, 10) . ' ' . $timeFrom);
    8.         $pdf->writeHTML($test);
    9.  
    10.         $pdf->Cell(50,10, 'To:');
    11.         $test2=$to !== null ? $to . ' ' . $timeTo : substr($this->db->query_one('select max(end_time) from log')['max(end_time)'], 0, 10) . ' ' . $timeTo;
    12.         $pdf->writeHTML($test2);
    13.         $pdf->Cell(50,10,'Device ID:');
    14.         $pdf->writeHTML($device_id);
    15.         $pdf->Cell(50,10,'Group:');
    16.         $pdf->writeHTML($group_name);
    17.      
    18.         $html='';
    19.         $column = 1;
    20.         $row = 0;
    21.    
    22.         $i=0;
    23.         $w=0;
    24.      
    25.         foreach ($channels->channels as $channel) {          
    26.             $key = array_search($channel, $channels->channels);
    27.             if (array_key_exists($key, $channels->data)) {
    28.                 $data = $channels->data[$key];
    29.                     $html.='<table><tr><td>'.$channel.'</td></tr></table>';
    30.        
    31.                  foreach ($data as $value) {
    32.                      $html.='<table>';
    33.                      $html.='<tr>';
    34.                     $cTime = substr($value->x, strpos($value->x, ' ') + 1, 8);
    35.  
    36.                     if (strtotime($cTime) >= strtoTime($timeFrom) && strtotime($cTime) <= strtotime($timeTo)) {                                      
    37.  
    38.                         for ($key = 1;$key<=4;$key=$key+1) {
    39.                           if ($key%4==0) {
    40.                        //    $html.='<br>';
    41.                               }
    42.  
    43.                         $html.='<td></td><td>'.$cTime.'</td>';
    44.                      //   $html.='<td>'.$value->y.'</td>';
    45.                      }
    46.                        $html.='</tr>';
    47.                        $html.=('</table>');
    48.                     $row++;                        
    49.                     }
    50.             }
    51.             $column++;
    52.             $row = 0;
    53.         }
    54.         }
    55.                       $pdf->writeHTML($html);
    56.         $pdf->Output('WatchingHours.pdf', 'D');
    57.     }  
    Информация выводится в пдф. Канал $channel, время просмотра $cTime и кол-во просмотров $value->y. Нужно чтобы все это добро выводилось в несколько таблиц. Так как $cTime может быть много (от 00:00:00 до 23:59:59). $channel это строки, а $cTime столбцы. должно быть примерно так на выходе:
    .................... 00:00:00 00:01:00 00:02:00
    Канал 1
    Канал 2
    Канал 3

    ..................... 00:03:00 00:04:00 00:05:00
    Канал 1
    Канал 2
    Канал 3

    Т.е. надо как-то частями обработать массив
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    собери массив, время и его под массив уже с каналами