※ ChatGPTを利用し、要約された質問です(原文:forの中でforをループしてそれぞれ配列に格納したい)
for文で配列にデータを格納する方法
このQ&Aのポイント
for文を使用して、複数のfor文でデータを取得し、配列に格納する方法を教えてください。
配列に格納する際、同じようなコードを繰り返し書く必要がありますが、これを簡潔にする方法はありますか?
また、記述したコードがタイムアウトする場合は、どのように対処すればよいですか?
forの中でforをループしてそれぞれ配列に格納したい
お世話になります。
5レコードずつのデータをテーブルに吐き、テーブル自体を4個
横に並べて表示したいです。
ひとつめのforを使って最初の5行を取得しテーブルに収めることは
できたのですが、6-10行目のレコードは、また同じようなforを
書いて、隣のテーブルに書かないといけないでしょうか。
配列の引数に配列もしくは変数を用いて書けば、何度も同じような
コードを書かなくて済むと思ったのですが、記述しても膨大な
計算をしているらしく、タイムアウト?か、真っ白な画面を出して
きます。
No 氏名 No 氏名 No 氏名
1 山田 6 川田 11 谷田
2 山下 7 川上 12 谷川
3 山本 8 川本 13 谷本
5行まで
要するに、1つのテーブルがいっぱいになったら(ここでは5行)
となりのテーブルに行ってほしいのです。1-5を第1テーブル、
6-10を第2テーブル・・・とすると、第1と第2のコードはループ
2回で取れないでしょうか。
$start = 0;
for ($A = 0; 3; $A++){ //テーブル4個分のループ
//1テーブル5行分のループ
for ($recno = $start + ($A * 5); $recno < $start + 5 + ($A * 5); $recno++){
if (! $row =& $res->fetchRow(db_fechtmode_assoc,$recno)) {
break;
}
$body['$A'].="<tr>";
$body['$A'].="<td>".$row["No"]."</td>";
$body['$A'].="<td>".$row["氏名"]."</td>";
$body['$A'].="</tr>\n";
}
}
で、$body[0]の第1テーブルを書き出し、$body[1]の第2テーブルを
書き出し・・・と、そのまま使えたら楽だと思ったのです。
そもそも、$body[0]の中にはNoと氏名とは2つ入らないでしょうか・・・。
PHP5.2.6 と PEAR です。よろしくお願いします。
お礼
2つ目の引数は $A < 3 ですね。 $startは、要求されたNoによっては、テーブルに書き出す 開始位置を決めたかったので入れています。 $recno = $start + ($A * 5); こんなように足しても問題ない ですよね・・・という確認の意味で書きました。 何とか表示されています。もう少々手直しが必要ですが、あとは いけると思います。ありがとうございました。