forループのカウンターについて

今回も実際に目の当たりにした残念なコード
ページャーつきのリスト表示用に配列の一部を切り出す処理です。

$page_no //ページ番号。適当な数値が入ってるとします。
$disp_row //表示行数。同様に適当な数値が入っています。

$start = ($page_no - 1) * $disp_row
for($i = 0;$i<$disp_row;$i++){
  $tmp["no"] = $i + $start;
  $tmp["id"] = $data[$i + $start]["id"];
  $tmp["name"] = $data[$i + $start]["name"];
  $tmp["date"] = dateFormat($data[$i + $start]["date"]);
  :
  (中略)
  :
  $out[] = $tmp;
}

なかなかに残念なコードですね。突っ込みどころが沢山。
とりあえず、おんなじ計算($i + $start)を何回もするんじゃない。

まー、カウンタの初期値をちゃんと設定すれば良いだけの話なのだが・・・。

$page_no //ページ番号。適当な数値が入ってるとします。
$disp_row //表示行数。同様に適当な数値が入っています。

for($i = ($page_no - 1) * $disp_row,$end = $i + $end;$i<$end;$i++){
  $out[$i]["no"] = $i;
  $out[$i]["id"] = $data[$i]["id"];
  $out[$i]["name"] = $data[$i]["name"];
  $out[$i]["data"]= dateFormat($data[$i]["date"]);
  :
  (中略)
  :
}

でいいんじゃないかな。