定義と使用方法
- PHPバージョン
- 4+
array_keys()関数は指定された配列からキー(keys)のみを抽出し、新しい配列として返します。
この関数は、特に連想配列で構成された設定やオプションなど、Web開発において重要となる項目(key)の一覧を扱う際に有用です。
特徴
- すべてのキーを取得することもでき、
- フィルターオプションを適用して特定の値と一致するキーのみを選択的に抽出することもできます。
- 連想配列ではないインデックス配列(Indexed array)では、キーとしてインデックス(整数)を返します。
- キーが存在しない場合は空の配列を返します。
- 元の配列はそのまま保持されます。
基本の例
/** 連想配列 **/
$assoc = ['name' => 'Alice', 'age' => 25];
// 全てのキー一覧を取得
$keys = array_keys($assoc);
var_dump($keys); // 出力: array(2) { [0]=> string(4) "name" [1]=> string(3) "age" }
// フィルターオプションを適用し、特定の値と一致するキーのみ取得
$keys_filtered = array_keys($assoc, 25);
var_dump($keys_filtered); // 出力: array(1) { [0]=> string(3) "age" }
/** インデックス配列 **/
$indexed = ['apple', 'banana', 'cherry'];
$keys_indexed = array_keys($indexed);
var_dump($keys_indexed); // 出力: array(3) { [0]=> int(0) [1]=> int(1) [2]=> int(2) }
// 注意: array_keys()は元の配列を変更しません。
構文
array_keys(array $array): array
array_keys(array $array, mixed $filter_value, bool $strict = false): array
引数
$array |
キー(keys)を抽出する対象となる配列です。 |
|---|---|
$filter_value |
オプションです。指定された値と一致するキー(keys)のみを抽出するための値です。 この引数を省略した場合は、配列内のすべてのキーが返されます。 |
$strict |
オプションです。$filter_valueの値がデータ型まで一致しているかどうか(true/false)を判定するかを指定します。もし $strictを
|
戻り値
配列のすべてのキー(keys)を配列として抽出して返します。
フィルターを指定した場合は、指定された値と一致するキー(keys)のみを抽出して配列として返します。キーが存在しない場合は空の配列を返します。
活用例
array_keys()関数の便利な活用例です。
ウェブサイトの設定項目一覧を取得
この例では、ウェブサイトの設定ファイルから重要な項目(キー)を取得し、一覧として出力する状況を示しています。
// ウェブサイトの重要な設定項目を格納した連想配列
$site_settings = [
'site_name' => '私の素敵なウェブサイト',
'admin_email' => 'admin@example.com',
'debug_mode' => true,
'posts_per_page' => 10
];
// array_keys()関数を使用して設定項目(キー)の一覧を取得
$setting_keys = array_keys($site_settings);
echo "<h2>ウェブサイト設定項目一覧</h2>";
echo "<ul>";
foreach ($setting_keys as $key) {
echo "<li>" . $key . "</li>";
}
echo "</ul>";
上記のコードの結果をHTMLで表示すると、次のようになります。
<h2>ウェブサイト設定項目一覧</h2>
<ul>
<li>site_name</li>
<li>admin_email</li>
<li>debug_mode</li>
<li>posts_per_page</li>
</ul>
この例では、array_keys()関数が$site_settings配列のキー(key)であるsite_name、admin_emailなどを抽出し、$setting_keysという新しい配列として作成しました。こうして得られたキー一覧は、設定項目を動的に扱ったり、ユーザーに設定可能な項目を表示するUIを作成する際に非常に有用です。
array_keys()関数を使用せずとも、多くの作業はforeach()ループで処理できますが、array_keys()関数はキー一覧を抽出する際に特に有用であり、作業の目的や利便性に応じて使い分ける必要があります。