Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【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 * array_key_last() 関数の基本的な使用方法を示すサンプルコードです。
5 * この関数は、配列の最後のキーを返します。
6 * PHP 7.3 以降で利用可能です。
7 */
8function demonstrateArrayKeyLast(): void
9{
10    echo "--- array_key_last() の使用例 ---\n\n";
11
12    // 1. 数値添字配列の場合
13    $indexedArray = ['apple', 'banana', 'cherry'];
14    // 最後の要素のキーは 2
15    $lastKeyIndexed = array_key_last($indexedArray);
16    echo "数値添字配列: " . json_encode($indexedArray) . "\n";
17    echo "最後のキー: " . var_export($lastKeyIndexed, true) . " (型: " . gettype($lastKeyIndexed) . ")\n\n";
18
19    // 2. 連想配列の場合
20    $associativeArray = ['name' => 'Alice', 'age' => 30, 'city' => 'Tokyo'];
21    // 最後の要素のキーは 'city'
22    $lastKeyAssociative = array_key_last($associativeArray);
23    echo "連想配列: " . json_encode($associativeArray) . "\n";
24    echo "最後のキー: " . var_export($lastKeyAssociative, true) . " (型: " . gettype($lastKeyAssociative) . ")\n\n";
25
26    // 3. 空の配列の場合
27    $emptyArray = [];
28    // 空の配列の場合、null を返します
29    $lastKeyEmpty = array_key_last($emptyArray);
30    echo "空の配列: " . json_encode($emptyArray) . "\n";
31    echo "最後のキー: " . var_export($lastKeyEmpty, true) . " (型: " . gettype($lastKeyEmpty) . ")\n\n";
32
33    // 4. キーが数値と文字列が混在する配列の場合
34    $mixedArray = [10 => 'ValueA', 'keyB' => 'ValueB', 20 => 'ValueC', 'keyD' => 'ValueD'];
35    // 最後の要素のキーは 'keyD'
36    $lastKeyMixed = array_key_last($mixedArray);
37    echo "混在配列: " . json_encode($mixedArray) . "\n";
38    echo "最後のキー: " . var_export($lastKeyMixed, true) . " (型: " . gettype($lastKeyMixed) . ")\n\n";
39}
40
41// 関数を実行して結果を表示
42demonstrateArrayKeyLast();
43
44?>

array_key_last関数は、PHPにおいて配列の最後の要素のキーを取得するために使用されます。この関数は、引数として一つの配列$arrayを受け取ります。配列の末尾に存在する要素のキーを戻り値として返し、そのキーが数値の場合はint型、文字列の場合はstring型となります。もし引数として渡された配列が空の場合には、nullを返してそのことを示します。

サンプルコードでは、array_key_last関数の具体的な挙動がいくつか示されています。たとえば、['apple', 'banana', 'cherry']のような数値添字配列では、最後のキーである2が戻り値となります。['name' => 'Alice', 'age' => 30, 'city' => 'Tokyo']のような連想配列に対して適用すると、最後のキーである'city'を返します。また、空の配列[]を渡した場合には、期待通りnullが返されることが確認できます。数値と文字列のキーが混在する配列でも、最後に定義されたキーを正確に取得できるため、配列の構造に依存せず最後のキーを確実に知りたい場合に非常に便利です。この関数はPHP 7.3以降で利用可能であり、配列操作の効率化に貢献します。

array_key_last関数はPHP 7.3で導入されました。キーワードとして「php 5」とあると誤解されやすいですが、それ以前のバージョンでは利用できませんので、互換性に注意が必要です。引数の配列が空の場合、戻り値はnullとなります。そのため、結果を使用する前には必ずnullチェックを行い、予期せぬエラーを防ぐようにしてください。戻り値の型は、最後のキーが数値ならばint、文字列ならばstringと動的に変わる点も理解しておくことが大切です。この関数は、配列の最後の要素のキーをシンプルに取得したい場合に非常に役立ちます。

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

1<?php
2
3/**
4 * array_key_last 関数は、指定された配列の最後のキーを返します。
5 *
6 * この関数は PHP 7.3.0 で追加されました。
7 * そのため、キーワードにある PHP 7.2 以前の環境では利用できません。
8 * PHP 7.2 以前で同様の機能を実現するには、end() と key() を組み合わせるなどの代替手段が必要です。
9 *
10 * @param array $array 最後のキーを取得したい配列。
11 * @return string|int|null 配列が空の場合は null を返します。
12 *                         それ以外の場合は、配列の最後の要素のキーを返します。
13 */
14function demonstrateArrayKeyLast(): void
15{
16    // 1. 連想配列の場合
17    $associativeArray = [
18        'apple'  => 100,
19        'banana' => 150,
20        'orange' => 120,
21    ];
22    // array_key_last を使用して最後のキーを取得
23    $lastKeyAssociative = array_key_last($associativeArray);
24    echo "連想配列の最後のキー: " . ($lastKeyAssociative ?? 'null') . "\n"; // 出力: orange
25
26    // 2. 数値添字配列の場合
27    $indexedArray = ['red', 'green', 'blue'];
28    $lastKeyIndexed = array_key_last($indexedArray);
29    echo "数値添字配列の最後のキー: " . ($lastKeyIndexed ?? 'null') . "\n"; // 出力: 2
30
31    // 3. キーが混在する配列の場合
32    $mixedKeyArray = [
33        10 => 'first',
34        'key_b' => 'second',
35        20 => 'third',
36        'key_a' => 'fourth',
37    ];
38    $lastKeyMixed = array_key_last($mixedKeyArray);
39    echo "キーが混在する配列の最後のキー: " . ($lastKeyMixed ?? 'null') . "\n"; // 出力: key_a
40
41    // 4. 空の配列の場合
42    $emptyArray = [];
43    $lastKeyEmpty = array_key_last($emptyArray);
44    echo "空の配列の最後のキー: " . ($lastKeyEmpty ?? 'null') . "\n"; // 出力: null
45}
46
47// 関数を実行
48demonstrateArrayKeyLast();
49

array_key_last関数は、指定された配列の最後の要素のキーを取得するPHPの組み込み関数です。この関数はPHP 7.3.0で追加されたため、キーワードにあるPHP 7.2以前の環境では利用できません。もしPHP 7.2以前で同様の機能が必要な場合は、end()key()関数を組み合わせて使うなどの代替手段を検討する必要があります。

引数には、最後のキーを取得したい配列を一つ指定します。戻り値は、配列が空の場合にはnullを返します。それ以外の場合は、配列の最後の要素のキーを返します。このキーは、数値添字配列であればint型、連想配列であればstring型になります。

具体的な例を見てみましょう。例えば、'apple' => 100, 'banana' => 150, 'orange' => 120という連想配列に対してこの関数を使うと、最後のキーである'orange'が返されます。また、'red', 'green', 'blue'という数値添字配列の場合は、最後のキーである2が返されます。キーが文字列と数値で混在する配列の場合でも、配列に格納された順序で最後に位置する要素のキーを正確に取得します。空の配列に対して使用すると、期待通りnullが返されるため、結果の確認にはnullとの比較が有効です。このようにarray_key_last関数は、配列の内部ポインタを動かすことなく、最後のキーを効率的に取得できる便利な関数です。

array_key_last関数はPHP 7.3以降で利用可能です。そのため、PHP 7.2以前の環境でこの関数を使用するとエラーが発生します。古いPHPバージョンに対応する必要がある場合は、end()key()を組み合わせるなどの代替手段を検討してください。

この関数は、連想配列、数値添字配列、キーが混在する配列の種類に関わらず、最後の要素のキーを返します。特に注意すべき点として、空の配列を渡した場合は戻り値が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でないことを必ず確認してください。このチェックを怠るとエラーの原因となります。また、この関数は配列の内部ポインタを移動させないため、ループ処理の中で使っても安全です。戻り値の型は、数値添字配列なら整数、連想配列なら文字列になる点も覚えておきましょう。

関連コンテンツ

関連プログラミング言語