2011-01-25 5 views
0

私はデータを提示する配列を持っていますので、ページめしとして表示することができます。複数の配列からページ番号を付けて合計を計算する方法は?

$display_array = Array (
       [0] => Array 
        (
        [0] => 1 
        [1] => 2 
        [2] => 5 
        [3] => 5 
       ) 

       [1] => Array 
        (
        [0] => 1 
        [1] => 2 
        [2] => 5 
        [3] => 5 
       ) 

       [2] => Array 
        (
        [0] => 1 
        [1] => 2 
       ) 

       [3] => Array 
        (
        [0] => 1 
        [1] => 2 
       ) 

      ) 

私はPAGANATIONはこのような期待どおりの結果を得るのですWANT:

私が定義されている場合の$ show_per_page = 2

コールpaganation($のdisplay_array、1); //ページ1 FIRSTPAGE出力:

1 
2 

コールpaganation($のdisplay_array、2); //次のページ2 OUTPUT:

5 
    5 
    Total:13 // total appear here 


....//next page n 

私が$ show_per_page = 3を定義した場合;

paganation($のdisplay_array、1); //ページ1 FIRSTPAGE出力:

1 
    2 
    5 

paganation($のdisplay_array、2); //次のページ2 OUTPUT:

5 
    Total:13//Now total appear here 
    1 
    2 

paganation( $ display_array、3); //次のページ3 OUTPUT:

5 
5 
Total:10 // total appear here 
1 

私が定義されている場合の$ show_per_page = 12。 コールpaganation($のdisplay_array、1); //ページ1 FIRSTPAGE出力:

1 
2 
5 
5 
total:13 // total here 
1 
2 
5 
5 
total:13 // total here 
1 
2 
total:3 //total 
1 
2 
total:3 //total 

ここの人々は、任意のアイデアを持っていますか?ナイーブ

+0

そして、あなたは2つの同様の質問を投稿することで達成しようとしている正確に何?あなたの元の質問に固執し、それを修正してください:http://stackoverflow.com/questions/4793997/how-to-do-a-pagination-from-array – wimvds

+0

はい、しかし、私は私のデータ構造を変更する必要があることがわかりました。だから、私は問題はありません。例えば、$ show_per_page = 12.oneの場合、入力配列を変更するための提案があります。この時点で人々は私が望むものを理解することができます。あなたは今私の質問を理解していますか? – kn3l

答えて

2

何か(それが効率的に最初の数ページをスキップしていないため):

// array to display 
// page to show (1-indexed) 
// number of items to show per page 
function pagination($display_array, $page, $show_per_page){ 
    $start = $show_per_page * ($page-1); 
    $end = $show_per_page * $page; 
    $i = 0; 
    foreach($display_array as $section){ 
     $total = 0; 
     foreach($section as $value){ 
      if($i >= $end){ 
       break 2; // break out of both loops 
      } 

      $total += $value; 
      if($i >= $start){ 
       echo $value.'<br>'; 
      } 
      $i++; 
     } 
     if($i >= $start){ 
      echo 'total:'.$total.'<br>'; 
     } 
     if($i >= $end){ 
      break; 
     } 
    } 
} 
+0

あなたは私の問題を解決しました。本当にありがとうございます。 – kn3l

+0

問題が$ show_per_page = 5だった場合は、 – kn3l

+0

お手数ですが助けてください。 :) – kn3l

関連する問題