【PHP8.x】keyメソッドの使い方

keyメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

『keyメソッドは、ArrayIteratorオブジェクトが現在指している要素のキーを取得するメソッドです』 ArrayIteratorは、配列などの反復可能なデータを一つずつ順番に処理するための仕組みを提供します。プログラマーは、イテレータの内部的なポインタ(現在位置)を操作して、各要素にアクセスします。このkeyメソッドは、そのポインタが指し示している現在の要素のキー、つまり配列でいうところのインデックス番号や連想配列の文字列キーを返します。これは、現在の要素の値そのものを取得するcurrentメソッドと対になる機能です。ループ処理の中で、現在どのキーに対応する値を扱っているのかを正確に把握したい場合に使用します。もし、イテレータが有効な位置を指していない、例えば配列の要素をすべて処理し終えた後などにこのメソッドを呼び出した場合は、nullが返されます。そのため、通常はvalidメソッドでポインタが有効かどうかを確認してからkeyメソッドを呼び出すのが安全な使い方です。

構文(syntax)

1<?php
2
3// 連想配列を定義します
4$profile = [
5    'name' => 'Taro',
6    'age' => 30,
7    'language' => 'PHP'
8];
9
10// ArrayIteratorオブジェクトを生成します
11$iterator = new ArrayIterator($profile);
12
13// イテレータが有効な間、ループを実行します
14while ($iterator->valid()) {
15    // 現在の位置のキーを取得します
16    // public ArrayIterator::key(): string|int|null
17    $key = $iterator->key();
18
19    echo $key . PHP_EOL;
20
21    // イテレータを次の要素へ進めます
22    $iterator->next();
23}
24
25/*
26出力結果:
27name
28age
29language
30*/
31
32?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

string|int|null

現在の要素のキーを返します。キーが存在しない場合は null を返します。

【PHP8.x】keyメソッドの使い方 | いっしー@Webエンジニア