对我的 foreach 循环结果进行分类

Categorizing my foreach loop result

我的 SQL 结果 getResult 有很多行,在 Header 和 SubHeader 的每一列中都有不同的值,所以我想对它进行分类,现在我想为每个 subHeader 计数添加一个总结果getResult 行

$header = "";
$subHeader = "";
$getResult = "";

foreach($QueryMySql as row):

if($header != $row->headerColumn)
{
   $header = $row->headerColumn."<br />";
   $get .= $header;
}
if($subHeader != $row->subHeaderColumn)
{ 
   $subHeader = $row->subHeaderColumn."<br />";
   $get .= $subHeader;  
}
   $getResult = $row->getResultColumn."<br />";
   $get .= $getResult;

endforeach;

结果


USA Location(Header)

ICT Department(SubHeader)

1 (emp_name)getResult

2 (emp_name)getResult

3 (emp_name)getResult

total: 3 <- this is what i wanted to add in my output

Accounting Department(Subheader)

1 (emp_name)getResult

2 (emp_name)getResult

3 (emp_name)getResult

4 (emp_name)getResult

total: 4 <- this is what i wanted to add in my output

Pakistan(Header)

ICT Department(SubHeader)

1 (emp_name)getResult

2 (emp_name)getResult

3 (emp_name)getResult

4 (emp_name)getResult

total: 4 <- this is what i wanted to add in my output


India(Header)

Engineering Department(SubHeader)

1 (emp_name)getResult

2 (emp_name)getResult

3 (emp_name)getResult

4 (emp_name)getResult

total: 4 <- this is what i wanted to add in my output

我的理解是你想要计算列,如果没有,请更新你想要的输出,如果是,那么使用这个代码来计算所有记录并将结果保存在输出中:

$grandTtoal = 0;$tempHeader='';$tempSubHeader='';
foreach($QueryMySql as $OneRow){
    if($tempHeader == '' || $tempHeader != $OneRow->headerColumn)
    {
       echo $tempHeader = $OneRow->headerColumn."<br />";
    }
    if($tempSubHeader =='' || $tempSubHeader != $OneRow->subHeaderColumn)
    { 
       echo $tempSubHeader = $OneRow->subHeaderColumn."<br />"; 
    }
    for($i=0; $i<mysql_num_fields($OneRow);$i++ )
    {
         echo ($i+1).' '.$OneRow[$i]->getResultColumn."<br />";
    }
    echo "Total: ".$i;
    $grandTtoal += $i;        
}
echo "Grand Total: ".$grandTtoal;

第二个选项。

$grandTtoal = 0;$tempHeader='';$tempSubHeader='';
    foreach($QueryMySql as $OneRow){
        if($tempHeader == '' || $tempHeader != $OneRow->headerColumn)
        {
           echo $tempHeader = '<h1>'.$OneRow->headerColumn.'</h1>'."<br />";
        }
        if($tempSubHeader =='' || $tempSubHeader != $OneRow->subHeaderColumn)
        { 
           echo $tempSubHeader = '</h4>'.$OneRow->subHeaderColumn.'</h4>'."<br />"; 
        }
        for($i=0; $i<mysql_num_fields($OneRow);$i++ )
        {
             echo ($i+1).' '.$OneRow[$i]->getResultColumn."<br />";
        }
        echo "Total: ".mysql_num_fields($OneRow);
        $grandTtoal += mysql_num_fields($OneRow);        
    }
    echo "Grand Total: ".$grandTtoal;

一个快速的解决方案。

$head =array();$i = $j = $k = 1;
foreach($QueryMySql as $row){
    if($row->headerColumn == 'Header1'){
         if(!in_array('Header1', $head)){
            echo $row->headerColumn."<br/>";
            echo $row->subHeaderColumn."<br/>";
            $head[]   = $row->subHeaderColumn;     
         } 

         echo $i . $row->getResultColumn."<br />";
         $i++;

    }elseif($row->headerColumn == 'Header2') {
        if(!in_array('Header2', $head)){
            echo $row->headerColumn."<br/>";
            echo $row->subHeaderColumn."<br/>";
            $head[]   = $row->subHeaderColumn;     
         } 

         echo $j . $row->getResultColumn."<br />";
         $j++;

    }elseif($row->headerColumn == 'Header3') {
        if(!in_array('Header3', $head)){
            echo $row->headerColumn."<br/>";
            echo $row->subHeaderColumn."<br/>";
            $head[]   = $row->subHeaderColumn;     
         } 

         echo $k . $row->getResultColumn."<br />";
         $k++;
    }        
}