2016-02-19 85 views
0

我有一個動態生成的數組,我能夠操縱數據並將其打印在表中,但我希望能夠以不同的方式打印它。以特定的方式從php數組中打印html表

這是我已經能夠到目前爲止做:

enter image description here

這是我想達到

正如你可以看到陣列具有多個條目什麼, 對於每個條目我想創建一個新表並顯示如下數據:

enter image description here

有數組中的一些關鍵我寧願被添加到表離開了。這些按鍵的名稱是:身份證,CreatedDate,傳入

這裏是數組的樣子很短的例子:

[records] => Array 
     (
      [0] => Array 
       (
        [Id] => 
        [CreatedDate] => 2016-02-18T02:24:57.000Z 
        [FromName] => Technical Support 
        [Incoming] => 
        [MessageDate] => 2016-02-18T02:24:57.000Z 
        [Subject] => this is a test reply 
        [TextBody] => testt ref:_00D708cJQ._50080oYTuD:ref 
        [ToAddress] => [email protected] 
       ) 

      [1] => Array 
       (
        [Id] => 
        [CreatedDate] => 2016-02-17T13:36:52.000Z 
        [FromName] => Technical Support 
        [Incoming] => 1 
        [MessageDate] => 2016-02-17T13:36:08.000Z 
        [Subject] => MySupport Portal: Test Email via API 
        [TextBody] => this is a test email 4 ref:_00D708cJQ._50080oYTuD:ref 
        [ToAddress] => [email protected] 
       ) 

這裏是我當前的PHP代碼

 $count = $response_array['size'] -1; 

     //print table headers 
     echo '<table border=1><tr>'; 
     foreach($response_array['records'][0] as $key => $value) { 
      if($key !== 'Id') { 
       echo '<th>'.$key.'</th>'; 
      } 
     } 
     echo '</tr><tr>'; 

     //print table data 
     for ($i = 0; $i <= $count; $i++) { 
      foreach($response_array['records'][$i] as $key => $value) { 
       if($key !== 'Id') { 
        if($key === 'TextBody') { 
         echo '<td><pre>'.$value.'</pre></td>'; 
        } else { 
         echo '<td>'.$value.'</td>'; 
        } 
       } 
      } 
      echo '</tr><tr>'; 
     } 
     echo "</tr></table>"; 

我知道如何編寫HTML,但不知道如何綁定在PHP中,因爲我不知道如何將頭排序在表的不同部分..在任何情況下,這裏是帶有僞數據的html作爲placeh老人

   <table border=1> 
       <tr> 
        <th>MessageDate</th> 
        <th>FromName</th> 
        <th>ToAddress</th> 
       </tr><tr> 
        <td>data</td> 
        <td>data</td> 
        <td>data</td> 
       </tr><tr> 
        <th colspan=3>Subject</th> 
       </tr><tr> 
        <td colspan=3>this is the subject</td> 
       </tr><tr> 
        <th colspan=3>TextBody</th> 
       </tr><tr> 
        <td colspan=3>this is the body</td> 
       </tr> 
      </table> 
+3

問題是什麼?爲陣列的1行創建所需的模板,然後遍歷每行。 – Unex

+0

我知道如何編寫html,但不知道如何綁定php,因爲標題將在不同的地方 – user3436467

+0

我剛剛更新了我的文章與HTML和包含虛擬數據。將不勝感激一些幫助與PHP – user3436467

回答

1

好吧,既然你說你能做到1行,讓我們告訴你如何做到這一點。

只需循環你所有的線就可以了。

<?php foreach($response_array['records'] as $records): ?> 
      <table border=1> 
       <tr> 
        <th>MessageDate</th> 
        <th>FromName</th> 
        <th>ToAddress</th> 
       </tr><tr> 
        <td><?php echo $records['MessageDate'] ?></td> 
        <td><?php echo $records['FromName'] ?></td> 
        <td><?php echo $records['ToAddress'] ?></td> 
       </tr><tr> 
        <th colspan=3>Subject</th> 
       </tr><tr> 
        <td colspan=3><?php echo $records['Subject'] ?></td> 
       </tr><tr> 
        <th colspan=3>TextBody</th> 
       </tr><tr> 
        <td colspan=3><?php echo $records['TextBody'] ?></td> 
       </tr> 
      </table> 
<?php endforeach; ?> 

編輯:增加了PHP標籤

+0

謝謝!根據需要工作。似乎沒有太難,但我能夠明白你在那裏做了什麼 – user3436467

+0

這就是要點!希望這會有所幫助,你真的很接近 – Unex

1

Unex's answer是完美的。這裏是另一種選擇: -

echo '<table border=1>'; 
     foreach($response_array['records'] as $key => $value) {    

      if($key == 'MessageDate'){ 
       echo "<tr>"; 
       echo "<th>MessageDate</th>"; 
       echo "<th>FromName</th>"; 
       echo "<th>ToAddress</th>"; 
       echo "</tr>"; 
       echo "<tr>"; 
       echo "<td>{$response_array['records'][$key]['MessageDate']}</td>"; 
       echo "<td>{$response_array['records'][$key]['FromName']}</td>"; 
       echo "<td>{$response_array['records'][$key]['ToAddress']}</td>"; 
       echo "</tr>"; 
      } 

      if($key == 'Subject'){ 
       echo '<tr>'; 
       echo "<th colspan='3'>Subject</th>"; 
       echo "</tr>"; 
       echo '<tr>'; 
       echo "<td colspan='3'>{$response_array['records'][$key]['Subject']}</td>"; 
       echo "</tr>"; 
      } 


      if($key == 'TextBody'){ 
       echo "<tr>"; 
       echo "<th colspan='3'>TextBody</th>"; 
       echo "</tr>"; 
       echo "<tr>"; 
       echo "<td colspan='3'>{$response_array['records'][$key]['TextBody']}</td>"; 
       echo "</tr>"; 
      } 

     } 
echo "</table>"; 
+0

謝謝拉維!這也是一個很好的選擇。它幫助我學習新東西。非常感謝你的領帶。 – user3436467

+0

不客氣:-) –