関数の概要
PHPには配列の現在の位置(ポインタ)が指し示す要素のキーを取得するための関数として key() があります。ここで「pos」というのは、配列の内部ポインタの現在位置(ポジション)を指すことが多く、実際に配列の現在の要素を取得したい場合には「key()」や「current()」を使うのが一般的です。この記事では、特に key() 関数を中心に、配列の現在のキーを取得する方法について解説します。
パラメータの説明
array:現在のキーを取得したい配列を指定します。配列でなければなりません。
戻り値
key() 関数は、配列の内部ポインタが指している現在の要素のキーを返します。内部ポインタが配列の範囲外を指している場合は false を返します。
使用例
基本的な使い方
<?php
$array = ["apple", "banana", "cherry"];
echo key($array); // 0(最初の要素のキー)
?>
この例では、配列の最初の要素のキーである「0」が返されます。配列の内部ポインタは初期状態で最初の要素を指します。
配列の要素を順番に確認する
<?php
$array = ["first" => "apple", "second" => "banana", "third" => "cherry"];
echo key($array) . ": " . current($array) . "n"; // first: apple
next($array);
echo key($array) . ": " . current($array) . "n"; // second: banana
next($array);
echo key($array) . ": " . current($array) . "n"; // third: cherry
?>
next()関数で内部ポインタを次の要素に進めつつ、それぞれの現在のキーと値を取得しています。
内部ポインタの範囲外での動作確認
<?php
$array = [100 => "one hundred", 200 => "two hundred"];
end($array); // ポインタを最後に移動
echo key($array) . "n"; // 200
next($array); // ポインタを進める(範囲外へ)
var_dump(key($array)); // bool(false)
?>
この例は、ポインタが配列の最後を超えたとき、key()が false を返すことを示しています。
関連する関数
current():内部ポインタが指す現在の値を取得するnext():内部ポインタを次の要素に進めるprev():内部ポインタを前の要素に戻すreset():内部ポインタを最初の要素に戻すend():内部ポインタを最後の要素に移動する
まとめ
PHPで配列の現在の要素のキー(ポジション)を取得したい場合は key() 関数が便利です。内部ポインタは配列の要素を順番に処理する際に利用され、next() や prev() などと組み合わせて用います。配列の現在の値を得たい場合は current()、キーを得たい場合は key() を利用し、範囲外では false を返すことに注意しましょう。これらを理解すれば、配列の走査や特定の要素アクセスが効率的に行えます。
