PHP 8.5の新関数 array_first( ) とarray_last( )

Kavitha
2025-12-16
2025-12-16

Blog10_PHP8.5PHP 8.5では、新たに array_first()array_last() という便利な関数が追加されます。
これらを使うことで、あらゆる配列から先頭と末尾の値を、シンプルかつスピーディーに取得できるようになります。
これまでは同様の処理を行うために、開発者はより複雑で手間のかかる手法を取る必要がありました。
しかし、このアップデートにより、特にPHP初心者でもコードをすっきり書くことができ、可読性も大きく向上します。

 なぜこのことが重要なのでしょうか? 

PHP 8.5の登場以前は、開発者は主に次の2つの方法を用いていました。

  reset()end()の使用 
$first = reset($items);

$last = end($items);
  • 内部の配列ポインタが変更される(望ましくない副作用)
  • 配列式に支障がある(変数でなければならない)
  array_key_first()array_key_last()の使用 
$first = $items[array_key_first($items)];

$last = $items[array_key_last($items)];
  • 記述が冗長になる
  • 空の配列を判定する追加処理が必要になる
  • PHP初心者にとって分かりにくい
PHP 8.5を用いた新しい方法 - これらの関数で何をするか?
 関数   関数シグネチャ   戻り値 
 array_first()  function array_first(array $array): mixed {}   配列の最初の値 
 array_last()  function array_last(array $array): mixed {}   配列の最後の値

配列が空の場合、両方の関数はnullを返します。

 使い方 

1:単純なインデックス配列

これらの関数を使うと、配列の最初と最後の要素を、内部ポインタに影響を与えることなく、キーを使用せずに簡単に取得できるようになります。

$numbers = [10, 20, 30, 40]; 

echo array_first($numbers);      // 10

echo array_last($numbers);      // 40
2:連想配列

これらの関数はキーに依存しません。内部の順序に基づいて、値を返します。

$settings = [
   'theme' => 'dark',
   'language' => 'en',
   'notifications' => true
];

echo array_first($settings);      // 'dark'

echo array_last($settings);      // true (ブール値)
3:空の配列

空の配列の場合、両方の関数はエラーを発生させることなく、nullを返します。

$emptyArray = [];

$first = array_first($emptyArray);    // null

$last = array_last($emptyArray);   // null
4:キーが混在する配列

キーの順序が不規則であっても、これらの関数は問題なく動作します。

$messyArray = [

   3 => 'third',
   0 => 'first',
   2 => 'second',
   1 => 'fourth'

];

echo array_first($messyArray);    // 'third' (内部の順序で最初)

echo array_last($messyArray);    // 'fourth' (内部の順序で最後)
5:単一要素配列
$solo = ['lonely'];

echo array_first($solo);     // 'lonely'

echo array_last($solo);    // 'lonely' (同じ要素)

導入前と導入後:変化の比較

新しい関数と、既存のいくつかのパターンを比較してみましょう。

 シナリオ   旧方式(PHP < 8.5   新方式(PHP 8.5+ 
最初の要素を取得 reset($array)   または $array[array_key_first($array)]  array_first($array) 
最後の要素を取得 end($array)     または $array[array_key_last($array)]  array_last($array) 
null 安全で最初の要素を取得  !empty($array) ? reset($array) : null  array_first($array) 
クエリ結果の最後を取得  $result = $query->get(); end($result);  array_last($query->get()) 

概要

PHP 8.5で導入された新関数、array_first()とarray_last()は、一見ささいな機能に見えるかもしれませんが、日常的なコーディングをよりスムーズにします。特にPHPを学び始めたばかりの開発者には、特に効果があるでしょう。

  • 内部ポインタへの副作用を解消
  • 隠れた補助的手段が不要
  • 初心者にも簡単
  • 空の配列でも一貫性のある動作
  • 読みやすく、意図が明確なコードを記述