根据SESSION

时间:2015-06-13 04:49:00

标签: php session

我有这样的推车会话

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 } } ?>

2 个答案:

答案 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
?>