3

现在我有一个问题,我真的不知道从哪里开始看,我想制作一个包含一天租用汽车价格的表格,表格的标题是汽车型号,左侧表的一边是租赁公司,我想把价格放在价格所属的车型下面,价格和车是一个数组,车型有时可能是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 开发人员一天中大约 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>. 例如,赫兹行将是:

<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 回答