【PHP】配列の最後かどうか判定する

php PHP
この記事は約2分で読めます。

PHPで配列を回して最後の要素の時に処理を変えたいということがあると思います。

配列の最後かどうかどうか判定する方法を紹介します。

大きく2つ、foreach文で回す方法とfor文で回す方法となります。

スポンサーリンク

foreach文で回し、array_key_last関数でキーを比較(PHP7.3.0~)

まずarray_key_last関数で配列の最後のキーを取得します。

foreachで配列を回して、if文で最後のキーを現在ループさせているキーを比較して判定します。

$last_key = array_key_last($arr);
foreach ($arr as $key => $value){
  if($last_key === $key){
  //処理
  }
}

ちなみに、array_key_first関数に変えれば配列の最初のキーが取れるので、配列の最初かどうか判定できます。

スポンサーリンク

for文で回し、count関数を使い配列の長さを求め最後のIndexを計算して比較

こちらは先ほどと違いPHPバージョンが低くても使えます。

最初にcount関数を配列の要素数を取得します。次にその要素数に1を引いた数が最後のインデックスになります。

forで回して、if文で最後のインデックスと現在ループさせているiの値を比較して判定します。

$arr_count = count($arr);
$last_index = $arr_count - 1;
for ($i = 1; $i <= $arr_count; $i++){
  $value = $arr[i];
  if($last_index === i){
  //処理
  }
}

ちなみに最初の要素で判定したい場合は「0 === i」にして判定すれば良いです。

スポンサーリンク

まとめ

foreach文で回す方法とfor文で回す方法で配列の最後かどうかを判定する方法を紹介しました。

こちらの記事も似ている内容なので、よろしければご覧ください。

この記事を書いた人
サイト運営者
Ryu
Ryu

フリーランスエンジニア。転職含め9社経験。第二新卒から未経験でIT就職。社内SEとSIerのSEで働き、企画〜運用保守、フロント〜バック・インフラとフルスタックな守備範囲。C#とSQLとSalesforceが得意。

Ryuをフォローする
PHPブログ
スポンサーリンク