php - PHP在foreach中获取数量总和以在for循环中使用它
问题描述
我试图获得总量
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”有效,但我不能使用没有“数量总和”的“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);
}
}
解决方案
一种解决方案是使用array_column
从中提取所有quantity
值$wreceipt_items
并将它们求和:
$quantity_sum = array_sum(array_column($wreceipt_items, 'quantity'));
推荐阅读
- vb.net - 在visual basic中为tic tac toe编码玩家名称
- excel - 热门解决:VBA Copy Values only 1004 Error?
- typescript - 变量 x 满足接口 A 并且可选地也满足接口 B
- python - Heroku Flask 应用程序中的 json.decoder.JSONDecodeError - 如何调试?
- laravel - laravel 渴望加载性能
- angular - ngx-datatable angular中的客户端排序
- angular - 如何在 Angular App 之外访问 NgRx 商店
- css - CSS 伪元素 Z 索引
- visual-studio-code - 扩展“Prettier - 代码格式化程序”不能“index.php”
- node.js - MongoDB 结合了 3 个集合