2012-11-26 15 views
0

im有一個包含用戶數據和分類的數組。 IM嘗試輸出total_sum在最後一個分類組結束throught數組結束在數組結尾處輸出新的html行

array(22) { 
    [0]=> 
    array(5) { 
    ["reg_numb"]=> 
    string(4) "4334" 
    ["month"]=> 
    string(10) "2012-01-01" 
    ["name"]=> 
    string(20) "tregfdgfd" 
    ["classifi"]=> 
    string(2) "1A" 
    ["total_sum"]=> 
    string(5) "45000" 
    } 
    [1]=> 
    array(5) { 
    ["reg_numb"]=> 
    string(4) "4336" 
    ["month"]=> 
    string(10) "2012-01-01" 
    ["name"]=> 
    string(19) "ewrtgfgdfg" 
    ["classifi"]=> 
    string(2) "1A" 
    ["total_sum"]=> 
    string(5) "45000" 
    } 
    [2]=> 
    array(5) { 
    ["reg_numb"]=> 
    string(4) "4340" 
    ["month"]=> 
    string(10) "2012-01-01" 
    ["name"]=> 
    string(16) "ihjkhjbmgy" 
    ["classifi"]=> 
    string(2) "1A" 
    ["total_sum"]=> 
    string(5) "45000" 
    } 
    [3]=> 
    array(5) { 
    ["reg_numb"]=> 
    string(4) "4394" 
    ["month"]=> 
    string(10) "2012-01-01" 
    ["name"]=> 
    string(20) "ertgfbfjghj" 
    ["classifi"]=> 
    string(2) "1B" 
    ["total_sum"]=> 
    string(5) "30000" 
    } 
    [4]=> 
    array(5) { 
    ["reg_numb"]=> 
    string(4) "4396" 
    ["month"]=> 
    string(10) "2012-01-01" 
    ["name"]=> 
    string(21) "dwerdsfdf" 
    ["classifi"]=> 
    string(2) "1B" 
    ["total_sum"]=> 
    string(5) "30000" 
    } 
    [5]=> 
    array(5) { 
    ["reg_numb"]=> 
    string(4) "3496" 
    ["month"]=> 
    string(10) "2012-01-01" 
    ["name"]=> 
    string(23) "rergfdg" 
    ["classifi"]=> 
    string(2) "3A" 
    ["total_sum"]=> 
    string(5) "35000" 
    } 
    [6]=> 
    array(5) { 
    ["reg_numb"]=> 
    string(4) "3796" 
    ["month"]=> 
    string(10) "2012-01-01" 
    ["name"]=> 
    string(19) "ghjyuytuyt" 
    ["classifi"]=> 
    string(2) "3A" 
    ["total_sum"]=> 
    string(5) "35000" 
    } 
    [7]=> 
    array(5) { 
    ["reg_numb"]=> 
    string(4) "3797" 
    ["month"]=> 
    string(10) "2012-01-01" 
    ["name"]=> 
    string(25) "qeevvf" 
    ["classifi"]=> 
    string(2) "3B" 
    ["total_sum"]=> 
    string(5) "35000" 
    } 
    [8]=> 
    array(5) { 
    ["reg_numb"]=> 
    string(4) "3827" 
    ["month"]=> 
    string(10) "2012-01-01" 
    ["name"]=> 
    string(17) "qvfrrere" 
    ["classifi"]=> 
    string(2) "3B" 
    ["total_sum"]=> 
    string(5) "35000" 
    } 
    [9]=> 
    array(5) { 
    ["reg_numb"]=> 
    string(4) "1921" 
    ["month"]=> 
    string(10) "2012-01-01" 
    ["name"]=> 
    string(28) "ewrewrsdf" 
    ["classifi"]=> 
    string(2) "6A" 
    ["total_sum"]=> 
    string(5) "37000" 
    } 
    [10]=> 
    array(5) { 
    ["reg_numb"]=> 
    string(4) "2324" 
    ["month"]=> 
    string(10) "2012-01-01" 
    ["name"]=> 
    string(23) "abcdddsf" 
    ["classifi"]=> 
    string(2) "6A" 
    ["total_sum"]=> 
    string(5) "37000" 
    } 
    [11]=> 
    array(5) { 
    ["months"]=> 
    string(2) "10" 
    ["reg_numb"]=> 
    string(4) "1922" 
    ["month"]=> 
    string(10) "2012-01-01" 
    ["name"]=> 
    string(22) "test123" 
    ["classifi"]=> 
    string(2) "6B" 
    ["total_sum"]=> 
    string(5) "37000" 
    } 

的foreach:

<?php foreach ($infos as $info):?> 
<tr> 
     <td colspan = "2"><?php echo $info['reg_numb']?></td> 
     <td><?php echo $info['name']?></td> 
     <td><?php echo $info['classifi']?></td> 
     <td style="text-align: center"><?php echo $info['months']?>Months</td> 

    if its the last row in a classfi grpup out put the below row with total for that classifi 
    <tr> 
     <td colspan = "3">Total</td> 
     <td style="text-align: right"><hr /><?php echo $info[total_sum]?> </td> 
    </tr> 

    begin the next classifi group 
    <?php endforeach;?> 

,所以我會得到一個表,用戶數據和名單總數,然後是另一組用戶。

如何實現這一目標的任何幫助?

+0

粘貼您的foreach代碼,請 – GBD

+0

@GBD更新的代碼..我錯過了第一個聲明.. – LiveEn

回答

2

嘗試如下

<?php 
    $new_data = array(); 
    foreach ($infos as $key => $info): 
     $new_data[$info['classifi']][] = $info; 
    endforeach; 
?> 

<?php foreach ($new_data as $key1 => $arrinfo):?> 
<?php foreach ($arrinfo as $key => $info):?> 
<tr> 
     <td colspan = "2"><?php echo $info['reg_numb']?></td> 
     <td><?php echo $info['name']?></td> 
     <td><?php echo $info['classifi']?></td> 
     <td style="text-align: center"><?php echo $info['months']?>Months</td> 

// if its the last row in a classfi grpup out put the below row with total for that classifi 

    // Check everytimg is it last record 
    <?php if($key==count($arrinfo)-1) {?> 
    <tr> 
     <td colspan = "3">Total</td> 
     <td style="text-align: right"><hr /><?php echo $info[total_sum]?> </td> 
    </tr> 
    <?php } ?> 
    // begin the next classifi group 
<?php endforeach;?> 
<?php endforeach;?> 
+0

剛剛試了一下它秀最後一行只有一行。 – LiveEn

+0

請嘗試新編輯的答案 – GBD

+0

謝謝你..完美的工作...... :) – LiveEn

0
中的foreach循環使用計數器變量或的foreach($數組作爲$密鑰=> $ VAL)如果您的數組索引處於正確的順序,然後檢查

if ($key > 0 and ($array[$key-1]['classifi'] != $val['classifi'] 
    or $key == count($array) - 1)) { } 

然後輸出總的行,並設置組總和0