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

作成日: 更新日:

key関数は、配列の内部ポインタが現在指し示している要素のキーを取得するために使用する関数です。この関数は引数として一つの配列を受け取り、その配列の「現在の」要素のキーを返します。

PHPの配列は、その内部に「現在位置」を示すポインタを持っており、foreachループなどで配列の要素を順に処理する際にこのポインタが自動的に移動します。key関数は、この内部ポインタが現在どの要素を指しているのかを把握し、その要素のキー(数値または文字列)を取得する役割を果たします。

例えば、reset()current()next()prev()end()といった関数と組み合わせることで、配列の内部ポインタを自由に移動させながら、その都度、現在の要素のキーを確認することが可能です。これは、特定のキーを持つ要素を探したい場合や、配列のキーに基づいて処理を分岐させたい場合に非常に便利です。

もし配列が空である場合や、内部ポインタが配列の末尾を超えた位置にある場合、key関数はnullを返します。したがって、この関数を使用する際は、戻り値がnullである可能性を考慮し、適切にエラーハンドリングを行うことが重要です。これにより、予期せぬ動作を防ぎ、堅牢なプログラムを作成することができます。key関数を理解することは、PHPにおける配列の柔軟な操作をマスターするための第一歩と言えるでしょう。

基本的な使い方

構文(syntax)

key(array $array): int|string|null

引数(parameters)

array $array

  • array $array: 要素のキーを取得したい配列

戻り値(return)

string|int|null

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

サンプルコード

PHP配列の現在のキーを取得する

<?php

/**
 * 配列の現在のキーを取得するサンプルコード
 */

$array = [
    'apple' => 'red',
    'banana' => 'yellow',
    'orange' => 'orange',
];

// 配列の内部ポインタを最初の要素に移動する
reset($array);

// 現在のキーを取得する
$currentKey = key($array);

// 結果を出力する
echo "現在のキー: " . $currentKey . PHP_EOL; // 出力: 現在のキー: apple

// 内部ポインタを次の要素に移動する
next($array);

// 現在のキーを取得する
$currentKey = key($array);

// 結果を出力する
echo "現在のキー: " . $currentKey . PHP_EOL; // 出力: 現在のキー: banana

//キーが存在しない場合
$array = [];
$key = key($array);

if ($key === null) {
    echo "配列が空であるか、内部ポインタが範囲外です。" . PHP_EOL;
}

PHPのkey()関数は、配列の内部ポインタが指す現在の要素のキーを取得するために使用します。この関数は引数として配列 $array を受け取り、現在のキーを文字列または整数で返します。配列が空であるか、内部ポインタが配列の範囲外を指している場合は null を返します。

サンプルコードでは、まず連想配列 $array を定義し、reset() 関数を使って内部ポインタを最初の要素に移動させています。その後、key($array) を呼び出すことで、最初の要素のキーである 'apple' を取得し、出力しています。

次に、next() 関数を使って内部ポインタを次の要素に移動させ、再度 key($array) を呼び出すことで、次の要素のキーである 'banana' を取得し、出力しています。

最後に、空の配列の場合の挙動を確認するために、key()関数がnullを返すことを確認しています。key()関数を使用する前にreset()関数で内部ポインタを初期化することで、意図したキーを取得することができます。配列のキーの存在をチェックしたい場合は、array_key_exists() 関数も合わせてご確認ください。

key()関数は、配列の内部ポインタが指す要素のキーを返します。内部ポインタは配列を操作する際に自動で動きますが、reset()next()prev()などの関数で明示的に操作できます。key()を使用する前に、reset()などで内部ポインタを初期化することを推奨します。

キーが存在しない場合(例えば空の配列や、内部ポインタが配列の範囲外を指している場合)、key()nullを返します。返り値がnullかどうかを===で厳密に比較して、キーが存在するかどうかを確認するようにしてください。型が緩い==での比較は意図しない結果になる可能性があります。

key()は配列自体を変更しません。あくまで現在のキーを返すのみです。

PHP key 関数で配列のキーを取得する

<?php

/**
 * 配列の現在の要素のキーを取得するサンプルコード
 */
$array = [
    'name' => 'Taro',
    'age' => 30,
    'city' => 'Tokyo',
];

// 配列のキーを取得する前に、内部ポインタを先頭にリセットすることが推奨されます。
reset($array);

$key = key($array);

if ($key !== null) {
    echo "現在のキー: " . $key . PHP_EOL; // 出力: 現在のキー: name
} else {
    echo "配列が空であるか、内部ポインタが無効です。" . PHP_EOL;
}

// 内部ポインタを移動してからキーを取得する例
next($array);
$key = key($array);

if ($key !== null) {
    echo "現在のキー: " . $key . PHP_EOL; // 出力: 現在のキー: age
} else {
    echo "配列が空であるか、内部ポインタが無効です。" . PHP_EOL;
}

PHPのkey()関数は、配列の内部ポインタが現在指している要素のキーを取得するための関数です。

この関数は、引数としてキーを取得したい配列を一つ受け取ります。戻り値は、内部ポインタが指している要素のキーです。キーが文字列の場合は文字列型、数値の場合は整数型が返されます。もし配列が空であったり、内部ポインタが配列の最後の要素を超えて無効な位置を指していたりする場合には null を返します。

サンプルコードでは、まず$arrayという連想配列を定義しています。reset()関数で内部ポインタを配列の先頭に戻してからkey()を実行すると、先頭要素のキーである'name'が取得されます。次にnext()関数で内部ポインタを一つ次の要素へ移動させ、再度key()を実行すると、2番目の要素のキーである'age'が取得できます。このようにkey()関数は、配列の内部ポインタの位置に依存するため、next()prev()reset()といったポインタを操作する関数と組み合わせて使用するのが一般的です。

key()関数は、配列の内部ポインタが指す現在の要素のキーを返します。初心者が注意すべき点として、key()関数は配列の内部ポインタに依存する点が挙げられます。内部ポインタが意図しない位置にあると、予期せぬキーを取得してしまう可能性があります。そのため、reset()関数で内部ポインタを先頭に戻すか、next()prev()関数で適切な位置に移動させてからkey()関数を使用することが重要です。また、配列が空の場合や内部ポインタが範囲外を指している場合はnullを返すため、nullチェックを行うことで、エラーを回避できます。取得したキーは文字列または整数のどちらかの型になります。

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