【问题标题】:PHP get sum of quantity inside a foreach to use it on for loopPHP在foreach中获取数量总和以在for循环中使用它
【发布时间】:2019-02-07 21:29:33
【问题描述】:

我正在尝试获取总量

    The data from array would look like this;
    [desc]  [quantity]
    [foo1], [   2    ]
    [foo2], [   2    ]
....

这是“代码”:

    function saveInvoiceDetail(array $wreceipt_items, $warehouse = '', $tracking = ''){
    global $con;

    $y = 0;

    foreach ($wreceipt_items as $wreceipt_item){
        $desc = mysqli_real_escape_string( $con, trim( $wreceipt_item['desc'] ) );
        $quantity = mysqli_real_escape_string( $con, trim( $wreceipt_item['quantity'] ) );

        $query = "INSERT INTO wreceipt_items (`id`, `warehouse`, `desc`, `quantity`)
                VALUES (NULL, '$warehouse', '$desc', '$quantity')";
    $y++;
        mysqli_query($con, $query);
    }

$quantity_sum = array_sum($wreceipt_item['quantity'])

    $x = $quantity_sum; //repeat this insert ($quantity_sum) times
    for ($i = 1; $i <= $x; $i++){
            $query2 = "INSERT INTO control (`id`, `warehouse`, `tracking`)
                VALUES ('', '$warehouse-$i', '$tracking')";
            mysqli_query($con, $query2);
    }

}

期望的结果:执行 '$query2' X 次,其中 X = $quantity_sum; 这可能吗?我想不通。

注意:'foreach' 和 'for' 有效,但我不能使用没有 'quantity sum' 的 'for'

编辑 - 已修复

function saveInvoiceDetail(array $wreceipt_items, $warehouse = '', $tracking = ''){
    global $con;

    $y = 0;

    foreach ($wreceipt_items as $wreceipt_item){
        $desc = mysqli_real_escape_string( $con, trim( $wreceipt_item['desc'] ) );
        $quantity = mysqli_real_escape_string( $con, trim( $wreceipt_item['quantity'] ) );

        $query = "INSERT INTO wreceipt_items (`id`, `warehouse`, `desc`, `quantity`)
                VALUES (NULL, '$warehouse', '$desc', '$quantity')";
    $y++;
        mysqli_query($con, $query);
    }

$quantity_sum = array_sum(array_column($wreceipt_items, 'quantity'));

    $x = $quantity_sum; //repeat this insert ($quantity_sum) times
    for ($i = 1; $i <= $x; $i++){
            $query2 = "INSERT INTO control (`id`, `warehouse`, `tracking`)
                VALUES ('', '$warehouse-$i', '$tracking')";
            mysqli_query($con, $query2);
    }

}

【问题讨论】:

  • 有什么问题?您已经说明了所需的结果,然后说明您的代码已经可以工作。如果您的既定目标是执行 $query2 的次数等于 quantity sum,为什么要“在没有 quantity sum 的情况下使用 'for'”?这是不合逻辑的!
  • 我想对数组中的数量值求和以执行“for”语句。因为我需要将信息插入表中的次数。 (查询2)

标签: php loops for-loop foreach sum


【解决方案1】:

一种解决方案是使用array_column 从$wreceipt_items 中提取所有quantity 值并将它们相加:

$quantity_sum = array_sum(array_column($wreceipt_items, 'quantity'));

【讨论】:

  • @IrvıngNgr' 这回答了你的问题吗?如果没有,您能否提供更多信息来帮助回答?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-02
  • 1970-01-01
  • 2017-05-02
  • 1970-01-01
  • 2011-10-26
  • 2015-06-02
  • 1970-01-01
相关资源
最近更新 更多