【PHP】配列の最後(末尾)の要素を取得まとめ array_key_last, count, end関数

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

他の言語では配列の最後の要素を取得するための関数があるのですが、PHPは特に関数一発ではできず工夫が必要です。

array_key_last関数、count関数、end関数(※ポインタ利用のため非推奨)を使った取得の仕方をまとめました。

スポンサーリンク

配列の最後のキーを取得して値を取り出す(PHP7.3.0~)

array_key_last()関数を使い配列の最後のキーを取得します。ただし、PHP7.3.0から使えるようになった関数なので、対応していない場合があります。その場合は他の取得の仕方を使ってください。

$key = array_key_last($arr);
$value = arr[$key];

1行で書くとこうなります。

$value = $arr[array_key_last($arr)];
スポンサーリンク

配列の長さを使ってインデックス指定する

count()関数を使い配列の長さを取得します。その後、-1してインデックスから値を取得します。

$length = count($arr);
$index = $length - 1;
$value = $arr[$index];

1行で書くとこうなります。

$value = $arr[count($arr) - 1];
スポンサーリンク

end()関数を使う(内部ポインタを利用するため注意が必要)

end()関数を使います。 end()関数は内部ポインタを最後の要素へセットする関数ですが、戻り値に最後の要素の値を返します。空の配列の場合は false を返します。

ポインタは人間には優しくないため、関わらない方が良いかもしれません。意味を分からず使用しているとバグを生む可能性大です。

$value = end($arr);

もう少し直感的にポインタを使わない取得の仕方があると良かったのにと思います。

スポンサーリンク

まとめ array_key_last関数かcount関数-1を使おう

PHP7.3.0~ならarray_key_last関数かcount関数-1を使いましょう。それ以前のPHPバージョンの場合はcount関数-1を使いましょう。

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

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

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

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