【发布时间】: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