【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

静岡の情シス顧問|情シス出身→大手システム会社→独立|
企業のITコスト・契約・情シス体制を整理|
システム会社の見積確認、社内対応と外部依頼の整理|
Salesforce上流・見積評価にも対応|
現場に寄り添い、ITで会社を強くする。

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