• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP初心者です whileの回数を指定 について)

PHP初心者のためのwhileループの回数指定方法とは?

このQ&Aのポイント
  • PHP初心者の方におすすめの、whileループの回数を指定する方法について解説します。
  • 配列の要素ごとに区切りつける方法や、特定の回数ごとに区切る方法を紹介します。
  • 初心者でも分かりやすい具体的なコード例を示しながら、 whileループの回数を指定する方法を説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.1

んーー、とりあえず、while である必要はないと思われるのですが、 while のほうがお好みですか? 実行してないので どこかで軽くエラーとか出るかもしれませんが、以下のような感じでいかがでしょうか? $limit = 5; foreach($food_image as $i => $dat) { $limit--; $pdf->Text($x, $y, sjis_conv("$dat")); if ($limit == 0) { // ここに区切りを入れる処理を書いてください。 $limit = 6; } }

shanchan
質問者

お礼

bm_hiro様 早速のご回答ありがとうございます。 試したところ、解決できました。 助かりました。 whileでできると思って、3日くらい思案しておりましたが そもそもが間違いだったのですね。。

その他の回答 (3)

  • yuuki0229
  • ベストアンサー率70% (33/47)
回答No.4

配列を整理するというと一度次のような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)
回答No.3

今回の件は$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++; } ?>

shanchan
質問者

お礼

どうもありがとうございます PHP初歩のときは配列の扱いをしっかりやることと 教えてもらいました、 配列を整理するということが大事なんですね。

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.2

#1です。 > whileでできると思って、3日くらい思案しておりましたが while でも出来る事はできるのですが、今回の場合は、配列に入っているものでしたし、foreachのほうがいいかな~。ってだけでした。

shanchan
質問者

お礼

教えていただいて、ネットでforeachについて調べていたら 配列を扱うときはforeachでの処理が一般的だと知りました。 何分、初心者なもので、そこら辺をしっかり勉強したいと思います。

関連するQ&A