3

問題が発生しました。どこから始めればよいのかわかりません。1日あたりのレンタカーの価格が記載されたテーブルを作成したいと思います。テーブルのヘッダーは車種で、左側にあります。表の横はレンタル会社ですが、価格が属する車種の下に価格を入れたいのですが、価格と車は配列から出ており、車種は5車種、場合によっては多かれ少なかれあります。 、PHPやJSで並べ替える方法がわからないので、

これが私がやりたいことの例です、

         Economy  |  Midsize  |  Fullsize
___________________________________________
Hertz  |          | 60.10     | 70.00
___________________________________________
Avis   | $55.22   | 69.10     | 81.56
___________________________________________
Budget | $50.10   |           | 70.00

そして時々それは次のようになることができます、

         Economy  |  Midsize  |  Fullsize
___________________________________________
Hertz  | 60.10    |           | 70.00
___________________________________________
Avis   | $55.22   |           | 81.56
___________________________________________
Budget | $50.10   |  69.10    | 70.00

配列はそのようなものです、

Array(
   [Hertz] => Array(
               [Economy] => Array(
                        [0] => 
                )
               [Midsize] => Array(
                        [0] => 60.10
                )
               [Fullsize] => Array(
                        [0] => 70.00
                )
        )
   [Avis] => Array(
               [Economy] => Array(
                        [0] => 55.22
                )
               [Midsize] => Array(
                        [0] => 69.10
                )
               [Fullsize] => Array(
                        [0] => 81.56
                )
        )
   [Budget] => Array(
               [Economy] => Array(
                        [0] => 50.10
                )
               [Midsize] => Array(
                        [0] => 
                )
               [Fullsize] => Array(
                        [0] => 70.00
                )
        )
)

上記の例でわかるように、配列をループするときに列をスキップしたいのですが、3台以上の車になることもあります。

繰り返しますが、それは私が得ている配列の出力に依存します。

では、それを行うためのPHPまたはJSスクリプトはどこにありますか?

4

2 に答える 2

2

foreachを使用できます。この関数は、Web開発者として1日の約20%を助けてくれます。あなたがする必要があるのはあなたの配列を整理することです、あなたの場合あなたはcolsのブランドと値としてキーを扱うことができます、phpではそれはこのように見えるかもしれません:

$aData = new array( 
  ["empty"] => new array( 
    [0] => "Economy",
    [1] => "Midsize",
    [2] => "Fullsize", 
    ),
  ["Hertz"] => new array(
    [0] => "",
    [1] => "60.10",
    [2] => "70", 
   ),
);



配列がこの構造を持っている場合、テーブルが残りを行います。

<table>
  <?php

  foreach( $aData as $sRowName => $aCols ) {
  ?>
    <tr>
      <td>
        <?php echo $sRowName; ?>
      </td>
      <?php
    foreach( $aCols as $sColData ) {
      if( $sColData !== "empty" ) {
        echo "<td>$sColData</td>";
      }
    } 
  ?>
    </tr>
  <?php   
  }
  ?>
</table>

配列には必要な数の行と列を追加できます。foreachは各項目をループします;)

于 2012-06-12T20:16:30.137 に答える
1

に内容を入れずに、テーブル購入に空白のエントリを挿入できます<td>。たとえば、Hertz行は次のようになります。

<tr>
  <td>Hertz</td>
  <td></td>
  <td>60.10</td>
  <td>70.00</td>
</tr>

同様に、予算行は次のようになります。

<tr>
  <td>Budget</td>
  <td>$50.10</td>
  <td></td>
  <td>70.00</td>
</tr>

それを生成するには、次のようなことを行うことができます

if (is_null($price))
{
  echo "<td></td>";
}
else
{
  echo "<td>" . $price . "</td>";
}
于 2012-06-12T20:07:50.870 に答える