【发布时间】:2017-01-09 11:17:15
【问题描述】:
我有一个来自数据库的数组,我想循环访问,并且 item_id 相同,添加 qty(quantity) 以获得总数量。我尝试使用 while 循环进入内部数组,其中最大计数由 count(outer array) 确定,但这并没有给我带来想要的结果。
这是数组:
Array
(
[0] => Array
(
[id] => 8
[lpo_id] => 20
[invoice_no] => 1483958702
[external_invoice_no] => 1
[item_id] => 21
[qty] => 14
[currency] => USD
[price] => 1.31
[date] => 1483909200
[supplier_id] => 9
)
[1] => Array
(
[id] => 9
[lpo_id] => 20
[invoice_no] => 1483958702
[external_invoice_no] => 1
[item_id] => 22
[qty] => 15
[currency] => USD
[price] => 2.52
[date] => 1483909200
[supplier_id] => 9
)
)
这是数据库查询:
public function getSupplierInvoiceByRefNo($ourRef) {
$sql = "SELECT * FROM `{$this->_table_20}` WHERE `invoice_no` = '$ourRef'";
return $this->db->fetchAll($sql);
}
public function fetchAll($sql) {
$result = $this->query($sql);
$out = array();
while($row = mysqli_fetch_assoc($result)) {
$out[] = $row;
}
mysqli_free_result($result);
return $out;
}
数据库表:
id | lpo_id | invoice_no | external_invoice_no | item_id | qty | currency | price | date | supplier_id
期望的输出是具有下表,其中具有相同 item_id 的行项目具有总计数量并且在输出表中仅显示一次
item_id | qty | price | currency
【问题讨论】:
-
无法得到您的问题您想要的输出是什么?
-
抱歉,我没有看到您说您尝试过的 php 代码。如果您不发布,您希望我们如何提供帮助?
-
为什么
list()在低于7的php版本中不可用? -
我想说,您可以通过更改在数据库上运行的查询来为您完成这一切,从而更快、更简单地完成此操作。发布您的查询。总是尝试修复错误的根源,将垃圾放入好的数据是一种不好的做法
-
$final_sum = array(); foreach ($array as $arr){ $final_sum[$arr['item_id']] = $final_sum[$arr['item_id']]+$arr['qty']]; } echo "<pre/>";print_r($final_sum);
标签: php