0%

Programmingプログラミングナレッジ

Posted:2020.03.29

PHPのforeachで繰り返した時のインデックス番号を取得する

プログラミングは同じ処理でも言語によって似ているようで、書き方が微妙に違うということがよくあります。今回はPHPにおいて配列の処理などで使われるforeachで繰り返した場合のインデックス番号の取得についてメモしておきたいと思います。

 

基本的なことになりますが、PHPで配列内のデータを扱うときに、foreachは下記のようになります。

【PHP】

<?php
 $array = array( 'いちご', 'みかん', 'りんご', 'ぶどう' );
 foreach ( $array as $value ) {
  echo $value. "\n";
 }
?>

// 出力結果
いちご
みかん
りんご
ぶどう

 

foreach( 配列 as 値 )のように指定して、そのスコープ内で処理を記述していきます。上記の場合のように値だけが必要な場合はその記述で問題ありませんが、インデックス番号が取得できません。

 

普段はどちらかというとJavascriptを扱うことが多く、forEach()の関数などで配列データを操作したりするのですが、この場合、引数でインデックス番号を取得する形になるのですが、PHPの場合はこのように少し要領が変わるので、注意が必要です。そこで、PHPで配列のループ処理の場合にインデックス番号を取得する場合は下記のようになります。

【PHP】

<?php
 $array = array( 'いちご', 'みかん', 'りんご', 'ぶどう' );
 foreach ( $array as $index => $value ) {
  echo $index. ":". $value. "\n";
 }
?>

// 出力結果
0:いちご
1:みかん
2:りんご
3:ぶどう

 

foreachで配列と値を引数として指定しますが、この時に値を「キー => 値」の形にします。すると、元の配列にキーが指定されていない場合にはデフォルトでインデックス番号が当てられるのでそれを参照する形で実現できます。

 

もちろん、キーと値のセットになった連想配列のデータを扱う場合に、同じ方法でキーの値を取得する場合にも使われます。

【PHP】

<?php
 $array = array( 
  'strawberry' => 'いちご',
  'orange' => 'みかん',
  'apple' => 'りんご', 
  'grape' => 'ぶどう' 
 );
 foreach ( $array as $key => $value ) {
  echo $key. ":". $value. "\n";
 }
?>

// 出力結果
strawberry:いちご
orange:みかん
apple:りんご
grape:ぶどう

 

普段あまり触らないとこのような微妙な違いに手が止まってしまいがちですので、できるだけ頑張って覚えておきたいところですね。

author
この記事を書いた人オガワ シンヤ
FacebookTwitter

DesignSupply.代表 / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はチョコレートが欠かせない三十路Webクリエイター。

制作のご依頼やお問い合わせ・パートナー業務提携のご相談はこちら

デザインやウェブ制作についてのご依頼やご相談、その他お問い合わせなどもお気軽にご連絡ください。フットワークの軽さやレスポンスの早さ、また豊富な経験や知識、技術を活かした対応力といったフリーランスクリエイターの強みでクライアント様、パートナー企業様のお力になります。デザインからコーディングやWordPress実装といったウェブサイト構築はもちろん、写真撮影や動画編集、コンテンツ制作からサイト運用サポートまで一括してお任せください。

ホームページ制作のご検討やウェブ運用でお悩みの経営者様や企業のウェブ担当者様をはじめ、個人で店舗を営んでいらっしゃるオーナー様、フリーで活動されているビジネスオーナー様はもちろんのこと、リソース不足でお困りの制作会社様、またクリエイターをお探しの代理店様も大歓迎です。

コンタクトをご希望の方はお手数ですが、下記よりお問い合わせフォームのページへアクセスしていただき、必要事項を入力の上メッセージを送信してください。確認でき次第すぐに折り返しご連絡致します。

こんな記事も読まれています

コメントもお気軽にどうぞ

記事に関するご質問やご意見などありましたら下記のコメントフォームよりお気軽に投稿ください。なおメールアドレスは公開されませんのでご安心ください。また、* が付いている欄は必須項目となります。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。

CAPTCHA


ページトップへ
大阪市天王寺区のホームページ制作デザイン事務所(SOHO)DesignSupply.【デザインサプライ】