array_keys

関数の概要

PHPの array_keys 関数は、配列のすべてのキーを取得して新しい配列として返します。配列のキーだけを取り出したい場合に非常に便利な関数で、連想配列や数値添字の配列問わず使用できます。

パラメータの説明

  • array (必須): キーを取得したい元の配列を指定します。
  • search_value (任意): この値と一致する要素のキーだけを取得したい場合に指定します。
  • strict (任意): true を指定すると、型も含めた厳密な比較が行われます。デフォルトは false です。

戻り値

配列のキー一覧が配列で返されます。search_value を指定した場合は、その値に一致するキーのみが返されます。元の配列が空の場合は空の配列が返ります。

使用例

基本的な使い方

<?php
$fruits = ['apple' => 100, 'banana' => 200, 'orange' => 150];
$keys = array_keys($fruits);
print_r($keys);
// 出力: Array ( [0] => apple [1] => banana [2] => orange )
?>

この例では連想配列 $fruits のキー「apple」「banana」「orange」が配列として取得されます。

特定の値に対応するキーだけを取得

<?php
$prices = ['pen' => 100, 'notebook' => 100, 'eraser' => 50];
$keys = array_keys($prices, 100);
print_r($keys);
// 出力: Array ( [0] => pen [1] => notebook )
?>

この例では値が100の要素のキーだけが取得され、「pen」と「notebook」が返ります。

厳密な比較を使う例

<?php
$mixed = ['a' => 1, 'b' => '1', 'c' => 2];
$keys_loose = array_keys($mixed, 1);         // 厳密比較しない
$keys_strict = array_keys($mixed, 1, true);  // 厳密比較する

print_r($keys_loose);
// 出力: Array ( [0] => a [1] => b )
print_r($keys_strict);
// 出力: Array ( [0] => a )
?>

値が 1 に等しい要素を、通常の比較と厳密比較で取得した場合です。厳密比較だと文字列の ‘1’ は除外されます。

関連する関数

  • array_values – 配列の値のみを取り出す関数
  • array_key_exists – 配列に特定のキーが存在するか調べる関数
  • array_search – 配列の中から特定の値を探し、そのキーを返す関数

まとめ

array_keys は配列からキーだけを抽出できる便利な関数です。単にキーを一覧表示したい場合や、特定の値に対応するキーを取得したい場合に役立ちます。複数の引数で柔軟に動作を変えられるため、用途に応じて使いやすい関数と言えます。PHPの配列操作で基本かつ頻繁に使用される関数なので、ぜひ覚えておきましょう。