Php 表中数据的排序

Php 表中数据的排序,php,html,arrays,html-table,Php,Html,Arrays,Html Table,我有三个表是由上一个文件中上传的数据创建的。我希望在定义的位置插入数据,这样每个服务在表中都是一个单独的记录,并且有单独的数量和分配的金额。 我的php函数: function listService() { $service_chcecked = $_POST['service_chcecked']; $quantity = $_POST['quantity_chcecked']; $net_price = $_POST['net_price_chcecked'];

我有三个表是由上一个文件中上传的数据创建的。我希望在定义的位置插入数据,这样每个服务在表中都是一个单独的记录,并且有单独的数量和分配的金额。 我的php函数:

function listService()
{
    $service_chcecked = $_POST['service_chcecked'];
    $quantity = $_POST['quantity_chcecked'];
    $net_price = $_POST['net_price_chcecked'];
    for ($x = 0; $x < count($service_chcecked); ++$x) {
        echo '<tr><td>id:' . $x . '</td><td>name:' . $service_chcecked[$x] . '</td>';
        for ($y = 0; $y < count($net_price); ++$y) {
            echo '<td>price:' . $net_price[$y] . '</td>';
            for ($z = 0; $z < count($quantity); ++$z) {
                echo '<td>quantity:' . $quantity[$z] . '</td>';
            };
        };
        echo '</tr>';
    }
}
我的html地址:

  <div class='services'>
  <table>
    <tr>
      <th><span>NO.</span></th>
      <th><span>Service name</span></th>
      <th><span>Net price</span></th>
      <th><span>Quantity</span></th>
    </tr>
        <?php listServiceName(); ?>
    </table>
</div>
现在,它以这种方式向我显示,并在末尾重复数据:/
这是因为您正在嵌套for循环。您为服务中的每个项目创建id和名称。然后为每个服务创建一个价格。第三个嵌套循环为每个服务创建一个数量列。这就是为什么你最终会得到那张破桌子。这取决于您如何接收POST数据,但如果三个数组的长度始终相同,则可以在一个循环中完成这一切:

function listService()
{
    $service_chcecked = $_POST['service_chcecked'];
    $quantity = $_POST['quantity_chcecked'];
    $net_price = $_POST['net_price_chcecked'];
    for ($x = 0; $x < count($service_chcecked); ++$x) {
        echo '<tr><td>id:' . $x . '</td><td>name:' . $service_chcecked[$x] . '</td>';
        echo '<td>price:' . $net_price[$x] . '</td>';
        echo '<td>quantity:' . $quantity[$x] . '</td>';
        echo '</tr>';
    }
}

很难理解发生了什么,但少就是多,尽量不要在函数中混用数据和html,这会让你以后感到困惑

  <?php 
      $services = $_POST['service_checked'];
      $qtys = $_POST['quantity_checked'];
      $prices = $_POST['net_price_checked'];
  ?>
  <div class='services'>
  <table>
    <tr>
      <th>NO.</th>
      <th>Service name</th>
      <th>Net price</th>
      <th>Quantity</th>
    </tr>
    <? foreach($services as $k=>$service){?>
    <tr>
      <td><?=$k?></td>
      <td><?=$service?></td>
      <td><?=$qtys[$k]?></td>
      <td><?=$prices[$k]?></td>
    </tr>
    <? }?>
    </table>
</div>
函数listService,但您在之后使用listServiceName。我在这里有些不对劲。