2017-07-13 18 views
1

私はPHP foreachを水平のHTMLテーブルに挿入することに関する解決策を探していた初心者です。 Dataset.xmlファイルには、複数のSeriesがあり、それぞれ属性として24 x TIME_PERIODと24 x OBS_VALUEがあります。水平HTMLテーブルにforeach出力を挿入する

私の問題は、それらのすべてが以下に書いたコードによって(自然に)リストされていることです。私はそれらを水平にどのように分割するのか分かりません。私はあなたが私が各シリーズの水平テーブルを作成するのを手伝ってくれたら嬉しいです。

電流出力のこのスクリーンショット考えてみましょう:

enter image description here

コードスニペット:

$xml=simplexml_load_file("00750006.xml") or die("Error: Cannot create object");               

foreach($xml->DataSet->Series as $series) { 

    foreach($series->Obs as $obs) { 

      $tp = (string)$obs["TIME_PERIOD"]; 
      $val = (string)$obs["OBS_VALUE"]; 

      echo "<table><tr> 

      <td class='dataC'>$tp</td> 
      <td class='dataC'>$val</td> 

       </tr></table>"; 
    } 
} 
+0

もっと詳しく質問してください!あなたのテーブルがどのように見えるか書き留めていただけますか? –

+0

ねえ。スクリーンショットを編集して追加しました。 – miraak

+0

お願いしますか? 1953 | 1954年| 1955 .....(行1) 168886 | 154227 | 164857 .........(2行目) ?? –

答えて

0

あなたは行ごとにテーブルを作成しています。それはここで間違っています。これを試して。その後、水平

<?php 
$xml=simplexml_load_file("00750006.xml") or die("Error: Cannot create object");               

foreach($xml->DataSet->Series as $series) { 
    echo "<table class='series-tbl'>"; 
    foreach($series->Obs as $obs) { 

      $tp = (string)$obs["TIME_PERIOD"]; 
      $val = (string)$obs["OBS_VALUE"]; 

      echo "<tr> 

      <td class='dataC'>$tp</td> 
      <td class='dataC'>$val</td> 

       </tr>"; 
    } 
    echo "</table>"; 
} 
?> 
<style type="text/css"> 
    .series-tbl 
    { 
    float: left; 
    } 
</style> 
+0

ありがとう!それは必要なように働いた。 – miraak

+0

@miraakこの回答が役に立った場合は、アップフートして回答を受け入れてください。 –

+0

私は努力していますが、「フィードバックに感謝します。評判が15未満の人の投票が記録されますが、公開されたポストスコア。 – miraak

0

それを表示するようにスタイルを割り当てることはちょうどあなたが新しい行を挿入しますが、行を追加する必要があり、そのため、ネストされたループからあなた<table>タグを削除この

$xml=simplexml_load_file("00750006.xml") or die("Error: Cannot create object");               
$tmp = array(); 
foreach($xml->DataSet->Series as $series) { 
    foreach($series->Obs as $key=>$obs) { 
      $tp = (string)$obs["TIME_PERIOD"]; 
      $val = (string)$obs["OBS_VALUE"]; 

      $tmp[$key] .= "<td class='dataC'>$tp</td> 
      <td class='dataC'>$val</td>"; 
    } 
} 
foreach($tmp as $row){ 
    echo "<table><tr>"; 
    echo $row; 
    echo "</tr></table>"; 
} 
0

を試してみてください。それは別のテーブルを作成します。

<?php 
$xml=simplexml_load_file("00750006.xml") or die("Error: Cannot create object");               

foreach($xml->DataSet->Series as $series) { 

echo "<table style='float: left;'>"; 
foreach($series->Obs as $obs) { 

     $tp = (string)$obs["TIME_PERIOD"]; 
     $val = (string)$obs["OBS_VALUE"]; 

     echo "<tr>"; 
     echo "<td class='dataC'>$tp</td>"; 
     echo "<td class='dataC'>$val</td>"; 
     echo "</tr>"; 
} 
echo "</table>"; 
} 
?> 
関連する問題