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"]); : (中略) : }
でいいんじゃないかな。