我有这样的推车会话
ID NAME DISC QTY
-- ---- ------ ------
1 AAAA D1 2
1 AAAA D5 1
2 BBBB D1 1
1 AAAA D1 1
我想要的是,显示一个包含这样结果的查询会话
NAME TOTAL
---- ------
AAAA 4
BBBB 1
我该怎么做?
对于show cart我有这样的查询:
<?php
if(count($_SESSION[data1][ID])>0)
for($i=0;$i<count($_SESSION[data1][ID]);$i++)
{
if($_SESSION[data1][ID][$i]!='')
{ ?>
<td ><?=$_SESSION[data1][ID][$i]?></td>
<td ><?=$_SESSION[data1][NAME][$i]?></td>
<td ><?=$_SESSION[data1][DISC][$i]?></td>
<td ><?=$_SESSION[data1][QTY][$i]?></td>
<?php } } ?>
答案 0 :(得分:0)
您可以简单地循环数据,将数量添加到由名称索引的数组中。
快速的例子
<?php
$names = array("AAA", "BBB", "AAA", "BBB");
$qts = array(1, 2, 3, 4);
for ($i=0; $i<count($names); $i++)
{
$res[$names[$i]] += $qts[$i];
}
$k = array_keys($res);
for ($i=0; $i<count($k); $i++)
{
echo $k[$i] . ":" . $res[$k[$i]] . "<br/>";
}
?>
AAA:4个
BBB:6
答案 1 :(得分:0)
您可以在foreach循环中创建一个新数组$resultArray
并取$_SESSION['data1']
,并检查$resultArray
中是否存在ID,如果是,则追加它,否则创建它。< / p>
<?php
$resultArray = array();
if(count($_SESSION['data1'])>0){
foreach($_SESSION['data1'] as $data){
if(isset($resultArray[$data['ID']])){
$resultArray[$data['ID']] += $data['QTY'];
} else {
$resultArray[$data['ID']] = $data['QTY'];
}
}
}
print_r($resultArray); //check out result
?>