【问题标题】:How to Remove Empty Row Elements from Multiple Array in PHP如何在 PHP 中从多个数组中删除空行元素
【发布时间】:2017-11-01 04:45:53
【问题描述】:

我使用数组发布了一组产品信息。有一段时间已插入空行。如何删除它。

客户端代码:

<?php for($i=1; $i<6; $i++) { ?>
<input type="text" name="product[]" id="product{{$i}}">
<input type="text" name="qty[]" id="qty{{$i}}">
<input type="text" name="rate[]" id="rate{{$i}}">
<input type="text" name="amount[]" id="amount{{$i}}">
<?php } ?>

服务器端代码:

 $product=implode('#@$',$_POST["product"]);
    $qty=implode('#@$',$_POST["qty"]);
    $rate=implode('#@$',$_POST["rate"]);
    $amts=implode('#@$',$_POST["amount"]);

$insertqry=mysql_query("insert into invoice (prodt,qty,rates,amts) values('$product','$qty','$rate','$amts')");

【问题讨论】:

  • 你说标记为空的依据是什么?
  • 有时用户不填写该行。如果空行无法插入值@AlivetoDie
  • 将 for 循环中的所有内容都包装在 IF 语句中...?

标签: php mysql arrays laravel


【解决方案1】:

根据您如何定义为空的行,如果空产品名称为空行, 那么:

添加条件 if ($product == '') continue;

之前:

$insertqry=mysql_query("insert into invoice (prodt,qty,rates,amts) values('$product','$qty','$rate','$amts')");

到代码的服务器端。因此它将跳过没有名称的产品。

如果这不是您想要的方式,请告诉我,我将再次编辑我的代码,谢谢。

【讨论】:

    【解决方案2】:

    你真的应该检查你的 $_POST 值,你可以使用array_filter

    $product = implode('#@$', array_filter($_POST["product"], function($var) {
      return isset($var)
    }));
    

    此外,您应该解析多维数组中的值

    $datas = [];
    
    foreach ($_POST['product'] as $index => $product) {
      $product = isset($product) ? $product : null;
      $qty= isset($_POST['qty'][$index]) ? $_POST['qty'][$index] : null;
      $rate= isset($_POST['rate'][$index]) ? $_POST['rate'][$index] : null;
      $amount= isset($_POST['amount'][$index]) ? $_POST['amount'][$index] : null;
    
      if ($product && $qty && $rate && $amts) {
        $data[] = [
          'product' => $product,
          'qty' => $qty,
          'rate' => $rate,
          'amount' => $amount
        ];
      }
    }
    

    现在你可以做这样的事情了

    <?php foreach ($datas as $data) { ?>
    <input type="text" name="product[]" id="product{{$data['product']}}">
    <input type="text" name="qty[]" id="qty{{$data['qty']}}">
    <input type="text" name="rate[]" id="rate{{$data['rate']}}">
    <input type="text" name="amount[]" id="amount{{$data['amount']}}">
    <?php } ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-03-19
      • 1970-01-01
      • 2011-08-18
      • 2019-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-21
      相关资源
      最近更新 更多