関数の概要
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の配列操作で基本かつ頻繁に使用される関数なので、ぜひ覚えておきましょう。
