3 времени цикла в настоящее время, как HTML-таблица? - PullRequest
0 голосов
/ 06 апреля 2011

У меня есть массив:

$A  = array(
         'A'=>
           array('a1'=>array(1,2,3),
                 'a2'=>array(1,2,3),
                 'a3'=>array(1,2,3)),
         'B' =>
            array('b1'=>array(1,2,3),
                  'b2'=>array(1,2,3),
                  'b3'=>array(1,2,3)),
         'C');

Как я могу использовать цикл для представления данных (таблица html):

-----------------------------
|    | time1|  time1 | time2 |
----------------------------
A    | 3    |   6   |   8
-----------------------------
 a1  | 1    |   2   |  2
-----------------------------
 a2  | 1    |   2   |  3
-----------------------------
 a3  | 1    |   2   | 3
----------------------------
B
 b1
 b2
 b3
C

Я пытаюсь (получить общее && display C вместо 0):

echo '<table border="1">';
  echo "<tr><td></td><td>time1</td><td>time2</td><td>time3</td></tr>";
 foreach ($A as $key=>$main){
    echo '<tr>';
      echo "<td>$key</td>";
      echo "<td>???</td>";
      echo "<td>???</td>";
      echo "<td>???</td>";
    echo '</tr>';

  foreach ($main as $k=>$sub) {
    echo '<tr>';
        echo "<td>$k</td>";

            foreach ($sub as $kk =>$val) {
                echo "<td>$val</td>";
            }
     echo '</tr>';    
      }


  }
  echo '</table>';

1 Ответ

1 голос
/ 06 апреля 2011
<?php

$A  = array(
         'A'=>
           array('a1'=>array(1,2,2),
                 'a2'=>array(1,2,3),
                 'a3'=>array(1,2,3)),
         'B' =>
            array('b1'=>array(1,2,3),
                  'b2'=>array(1,2,3),
                  'b3'=>array(1,2,3)),
         'C'=> null);   // in your case it won't be key it will be value

echo '<table border="1">';
echo "<tr><td></td><td>time1</td><td>time2</td><td>time3</td></tr>";

foreach($A as $key => $value)
{
   echo "<tr><td>".$key."</td>";
   if(!is_array($value))
     continue;

   echo "<td>".implode("</td><td>", findSum($value))."</td></tr>";
   foreach($value as $cKey => $cValue){
      echo "<tr><td>".$cKey."</td>"; 
      echo "<td>".implode("</td><td>", $cValue)."</td>";
   }
   echo "\n";
}

function findSum($value)
{
   if(!is_array($value))
      return array(0);

   $result = array();
   foreach($value as $childValue)
   {
      foreach($childValue as $cKey => $cValue)
          $result[$cKey] = isset($result[$cKey]) ? $result[$cKey] + $cValue : $cValue;
   }
   return $result;   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...