- ベストアンサー
PHP初心者のためのwhileループの回数指定方法とは?
- PHP初心者の方におすすめの、whileループの回数を指定する方法について解説します。
- 配列の要素ごとに区切りつける方法や、特定の回数ごとに区切る方法を紹介します。
- 初心者でも分かりやすい具体的なコード例を示しながら、 whileループの回数を指定する方法を説明します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
んーー、とりあえず、while である必要はないと思われるのですが、 while のほうがお好みですか? 実行してないので どこかで軽くエラーとか出るかもしれませんが、以下のような感じでいかがでしょうか? $limit = 5; foreach($food_image as $i => $dat) { $limit--; $pdf->Text($x, $y, sjis_conv("$dat")); if ($limit == 0) { // ここに区切りを入れる処理を書いてください。 $limit = 6; } }
その他の回答 (3)
- yuuki0229
- ベストアンサー率70% (33/47)
配列を整理するというと一度次のような2次元配列に変換してしまう方法もあります。 そこから2重ループで好きに処理すれば良いわけです。 $result = array( array(a,b,c,d,e), // 5件 array(f,g,h,i,j,k), // 6件 array(l,n,m,o,p,q), // 6件 … ); <?php $data = array(); for($i=1; $i<=50; $i++) { $data[] = "ダミーデータ{$i}"; } $top5 = array_splice($data, 0, 5); // 先頭5件を切り出す $result = array_chunk($data, 6); // 残りを6件ずつに分割(2次元配列) array_unshift($result, $top5); // 先頭に挿入 print_r($result); >PHP初歩のときは配列の扱いをしっかりやることと >教えてもらいました 上記のように配列関数(array_*)に慣れると便利です。
- yambejp
- ベストアンサー率51% (3827/7415)
今回の件は$food_imageのキーが0から始まる整数であることが 自明ですが、配列の場合必ずしもそうであるわけではありません。 whileでカウンタをインクリメントする場合は、条件を合わせるために array_keys()やarray_values()で一度配列を整理した方がよいでしょう。 すでに回答はでているとおりforeachでやるのが賢明だという 前提で、もしwhileでやるならこんな感じ <? $food_image= Array("a"=>"x","b"=>"y","c"=>"z"); $food_values = array_values($food_image); $i = 0; while( true ){ if(isset($food_values[$i])===false) break; print $food_values[$i]; $i++; } ?>
お礼
どうもありがとうございます PHP初歩のときは配列の扱いをしっかりやることと 教えてもらいました、 配列を整理するということが大事なんですね。
- bm_hiro
- ベストアンサー率51% (200/388)
#1です。 > whileでできると思って、3日くらい思案しておりましたが while でも出来る事はできるのですが、今回の場合は、配列に入っているものでしたし、foreachのほうがいいかな~。ってだけでした。
お礼
教えていただいて、ネットでforeachについて調べていたら 配列を扱うときはforeachでの処理が一般的だと知りました。 何分、初心者なもので、そこら辺をしっかり勉強したいと思います。
お礼
bm_hiro様 早速のご回答ありがとうございます。 試したところ、解決できました。 助かりました。 whileでできると思って、3日くらい思案しておりましたが そもそもが間違いだったのですね。。