【PHP8.x】array_key_last関数の使い方

array_key_last関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

『array_key_last関数は、指定された配列の最後のキーを取得する処理を実行する関数です。この関数は、引数に与えられた配列の最後の要素に対応するキーを返します。対象の配列が空でなければ、その最後のキーを整数または文字列として取得できますが、配列が空の場合はnullを返します。例えば、['a' => 1, 'b' => 2, 'c' => 3]という連想配列に対して使用すると、文字列の'c'が返されます。一方、[100, 200, 300]のような数値添字配列の場合は、最後の要素のキーである整数の2が返されます。この関数の重要な特徴は、配列の内部ポインタを移動させない点です。これにより、foreachループなどで配列を処理している最中にこの関数を呼び出しても、ループの動作に影響を与えることがありません。そのため、配列の状態を変更することなく、安全に最後のキー情報だけを参照したい場合に非常に便利な関数です。』

構文(syntax)

1<?php
2
3$array = ['a' => 1, 'b' => 2, 'c' => 3];
4$key = array_key_last($array);

引数(parameters)

array $array

  • array $array: 検索対象となる配列

戻り値(return)

string|int|null

指定された連想配列の最後のキーを返します。キーが存在しない場合は null を返します。

サンプルコード

PHP配列の最後のキーと値を取得する

1<?php
2
3/**
4 * 配列の最後のキーと値を取得して表示する
5 *
6 * この関数は、指定された配列の最後のキーを array_key_last() を使って取得し、
7 * そのキーに対応する値とともに表示します。
8 *
9 * @param array $array 対象の配列
10 * @return void
11 */
12function displayLastElementInfo(array $array): void
13{
14    // 配列の最後のキーを取得します。
15    // 配列が空の場合、null が返されます。
16    $lastKey = array_key_last($array);
17
18    if ($lastKey !== null) {
19        // 取得したキーを使って最後の値を取得します。
20        $lastValue = $array[$lastKey];
21
22        echo "対象の配列: " . print_r($array, true);
23        echo "最後のキー: " . $lastKey . PHP_EOL;
24        echo "最後の値: " . $lastValue . PHP_EOL;
25    } else {
26        echo "対象の配列は空です。" . PHP_EOL;
27    }
28    echo "------------------------" . PHP_EOL;
29}
30
31// 1. 数値キーの配列(インデックス配列)の例
32$fruits = ['apple', 'orange', 'grape'];
33displayLastElementInfo($fruits);
34
35// 2. 文字列キーの配列(連想配列)の例
36$user = [
37    'name' => 'Taro Yamada',
38    'age' => 30,
39    'country' => 'Japan',
40];
41displayLastElementInfo($user);
42
43// 3. 空の配列の例
44$emptyArray = [];
45displayLastElementInfo($emptyArray);
46
47?>

array_key_last()関数は、指定された配列における最後の要素のキーを取得するためのPHP関数です。

この関数は、引数としてキーを取得したい対象の配列を一つ受け取ります。戻り値として、配列の最後のキーを返します。キーの型は、数値キーの配列であれば整数(int)、文字列キーの連想配列であれば文字列(string)になります。重要な点として、引数に渡された配列が空の場合、最後のキーは存在しないため null を返します。

サンプルコードでは、まずarray_key_last()を使って配列の最後のキーを取得しています。そして、取得したキーが null でないことを確認した上で、そのキーを使って $array[$lastKey] という形式で対応する値を取り出し、キーと値をあわせて表示しています。数値キーの配列では最後のキー「2」が、文字列キーの連想配列では最後のキー「country」が取得されることがわかります。配列が空の場合は null が返されるため、配列が空である旨のメッセージが表示されます。この関数により、配列の最後の要素に簡単にアクセスできます。

array_key_last関数は、配列の最後の「キー」を返します。最後の「値」を直接取得する関数ではない点に注意が必要です。値を取得するには、この関数で得られたキーを使って配列にアクセスします。最も重要な点は、空の配列を渡すと戻り値がnullになることです。サンプルコードのように、必ずnullでないことを確認してからキーを使用してください。このチェックを怠ると、nullをキーとして配列にアクセスしようとしてしまい、警告の原因となります。この関数は、数値キーの配列と文字列キーの連想配列のどちらにも正しく利用できます。

PHPで配列の最後のキーを取得する

1<?php
2
3declare(strict_types=1);
4
5/**
6 * array_key_last() を使用して配列の最後のキーを取得するサンプル関数
7 *
8 * @param array $array キーを取得したい配列
9 * @return void
10 */
11function displayLastArrayKey(array $array): void
12{
13    // array_key_last() は、指定された配列の最後のキーを返します。
14    // 配列が空の場合は null を返します。
15    $lastKey = array_key_last($array);
16
17    if ($lastKey === null) {
18        echo "対象の配列は空です。\n";
19    } else {
20        // var_export() を使うと、キーの型(int or string)も分かりやすく表示できます。
21        echo "配列の最後のキーは: " . var_export($lastKey, true) . "\n";
22    }
23}
24
25// --- 実行例 ---
26
27// 1. 連想配列の場合 (キーは文字列)
28$fruits = [
29    'apple' => 'りんご',
30    'orange' => 'みかん',
31    'grape' => 'ぶどう',
32];
33echo "連想配列の例:\n";
34displayLastArrayKey($fruits); // 出力: 配列の最後のキーは: 'grape'
35
36echo "------------------------\n";
37
38// 2. 数値添字配列の場合 (キーは整数)
39$colors = ['Red', 'Green', 'Blue'];
40echo "数値添字配列の例:\n";
41displayLastArrayKey($colors); // 出力: 配列の最後のキーは: 2
42
43echo "------------------------\n";
44
45// 3. 空の配列の場合
46$emptyArray = [];
47echo "空の配列の例:\n";
48displayLastArrayKey($emptyArray); // 出力: 対象の配列は空です。
49

PHPのarray_key_last()関数は、指定された配列の最後のキーを取得するために使用します。この関数は、キーを取得したい配列を引数として1つ受け取ります。

関数が返す値は、引数に渡された配列の状態によって変わります。配列に要素が1つ以上存在する場合、その配列の最後のキーを返します。サンプルコードにあるように、キーが文字列の連想配列(例: $fruits)では最後のキーである文字列 'grape' が返され、キーが整数の数値添字配列(例: $colors)では最後のキーである整数 2 が返されます。

一方、引数に空の配列を渡した場合、この関数はエラーを発生させるのではなく null を返します。そのため、サンプルコードのように戻り値が null かどうかを判定することで、配列が空である場合の処理を安全に記述できます。

このようにarray_key_last()関数は、配列の末尾にある要素のキーを、配列の種類(連想配列か数値添字配列か)を問わず、シンプルかつ効率的に取得するための便利な関数です。

array_key_last()関数は配列の最後のキーを取得する便利な関数です。注意点として、引数に空の配列を渡すと戻り値がnullになります。取得したキーを配列の添字として使う前に、サンプルコードのように=== nullを用いて厳密な比較でnullでないことを必ず確認してください。このチェックを怠るとエラーの原因となります。また、この関数は配列の内部ポインタを移動させないため、ループ処理の中で使っても安全です。戻り値の型は、数値添字配列なら整数、連想配列なら文字列になる点も覚えておきましょう。

関連コンテンツ

【PHP8.x】array_key_last関数の使い方 | いっしー@Webエンジニア