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

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

作成日: 更新日:

基本的な使い方

keyメソッドは、RecursiveArrayIteratorが現在指している配列要素のキーを取得するメソッドです。多次元配列を再帰的に反復処理する際、このメソッドを呼び出すと、その時点での要素に対応するキーが返されます。例えば、配列が['apple', 'orange']のような数値添字配列の場合、キーは0や1といった整数値になります。一方で、['fruit' => 'apple', 'color' => 'red']のような連想配列の場合は、'fruit'や'color'といった文字列がキーとして返されます。この動作は、foreachループ構文におけるforeach ($array as $key => $value)$keyに相当する値を取得する機能と考えることができます。current()メソッドが要素の値そのものを返すのに対し、key()メソッドは、その値にアクセスするための識別子であるキーを返すという点で対になります。イテレーターが有効な位置を指していない、つまり配列の末尾を超えているような場合には、このメソッドはnullを返します。

構文(syntax)

1<?php
2// サンプルとなる多次元配列
3$userProfile = [
4    'name' => 'Taro Yamada',
5    'contact' => [
6        'email' => 'taro@example.com',
7        'phone' => '090-1234-5678'
8    ],
9    'interests' => ['Programming', 'Reading', 'Hiking']
10];
11
12// RecursiveArrayIteratorのインスタンスを生成
13$iterator = new RecursiveArrayIterator($userProfile);
14
15// イテレータをループ処理
16while ($iterator->valid()) {
17    // 現在の要素のキーを取得して表示
18    echo $iterator->key() . PHP_EOL;
19
20    // 次の要素へ移動
21    $iterator->next();
22}
23
24/*
25出力結果:
26name
27contact
28interests
29*/

引数(parameters)

引数なし

引数はありません

戻り値(return)

string|int|null

現在の配列要素のキーを返します。キーは文字列または整数であり、要素が存在しない場合は null を返します。