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