・IT/Web系エンジニアの経験者の方
・どこの転職エージェントを利用しようか迷っている方
それなら、キッカケエージェントにご相談!
キッカケエージェントでは、少数精鋭のエージェントが、エンジニアの経験やスキル、志向性などをカウンセリングし、的確なアドバイスを提供します!
また、徹底した企業へのヒアリングにより、最適なマッチングを実現し、今では内定率が一般的なエージェントの2倍以上となっています!
転職エージェントに迷っている方、まずは無料でキャリア相談から!
(この記事は2022年7月17日に投稿されました。)
PHPで配列や連想配列のキーを取得する方法として、array_keys()があります。
array_keys()とは指定した配列のキーを取り出す関数であり、配列を指定することで配列のキーを返り値として返すようになります。
この関数は最大で3つのパラメータを指定でき、第2パラメータを指定すると、取り出したい要素のキーを設定することができます。
そして、第3パラメータを指定すると、型まで厳密なチェックを行ってキーを取得するようになります。
また1次元配列だけでなく、2次元や3次元のような多次元配列や連想配列のキーを取り出すこともできます。
今回はPHPのarray_keys()で配列や連想配列のキーを取得する方法について紹介していきます。
array_keys()とは
冒頭でも言いましたが、array_keys()とは、指定した配列のキーを取り出す関数となります。
全てのキーを取り出すため、配列形式で返されるようになります。
array_keys()の書き方
array_keys()の書き方は下記のようになります。
1 | <?php array_keys('対象の配列' [, '検索する値', '厳密な比較']); ?> |
array_keys()は基本1つの必須パラメータを指定すると使用することができます。
そして、2つの任意パラメータを指定することができ、最大で3つのパラメータを指定して使用することができます。
array_keys()のパラメータ
array_keys()のパラメータは下記のようになります。
- 対象の配列(必須):
キーを取得したい配列名を指定する - 検索する値(任意):
キーを取得したい要素の値を指定する - 厳密な比較(任意):
厳密な比較をするかしないかをTRUE/FALSEで指定する
(デフォルトはfalse)
array_rand()は必須なパラメータとして対象の配列を指定します。
そして、任意なパラメータとして「検索する値」や「厳密な比較」を指定することができます。
array_keys()で配列のキーを取得するサンプルコード
array_keys()で配列のキーを取得するサンプルコードをご紹介します。
ここでは、下記の2つの場合でarray_keys()を使用します。
- 要素が存在する配列を指定した場合
- 要素が空の配列を指定した場合
要素が存在する配列を指定した場合
要素が存在する配列を指定した場合に、array_keys()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 対象の配列'; $Europa = ['イタリア', 'ドイツ', 'ポルトガル', 'フランス']; var_dump($Europa); echo '⚫︎ array_keys()使用後'; $Europa_keys = array_keys($Europa); var_dump($Europa_keys); ?> |
実行結果
対象の配列の要素が複数存在する場合は、配列の中からランダムに要素のキーが取り出されるようになります。
そのため、要素のキーである「0〜3」が配列で表示されています。
要素が空の配列を指定した場合
要素が空の配列を指定して、array_keys()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 対象の配列'; $Europa = []; var_dump($Europa); echo '⚫︎ array_keys()使用後'; $Europa_keys = array_keys($Europa); var_dump($Europa_keys); ?> |
実行結果
要素が空の配列を指定した場合は、配列のからキーが取り出されません。
そのため、空の配列が表示されています。
array_keys()に検索する値を指定して配列のキーを取得するサンプルコード
array_keys()の検索する値を指定して配列のキーを取得するサンプルコードをご紹介します。
ここでは、下記の2つの場合でarray_keys()を使用します。
- 配列に存在する要素を指定した場合
- 配列に存在しない要素を指定した場合
- 配列に重複する要素を指定した場合
配列に存在する要素を指定した場合
検索する値に「配列に存在する要素」を指定して、array_keys()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 対象の配列'; $Europa = ['イタリア', 'ドイツ', 'ポルトガル', 'フランス']; var_dump($Europa); echo '⚫︎ array_keys()使用後'; $Europa_keys = array_keys($Europa, 'ドイツ'); var_dump($Europa_keys); ?> |
実行結果
配列に存在する要素を指定した場合は、指定した要素のキーが取り出されるようになります。
そのため、「ドイツ」のキーである「1」が表示されています。
配列に存在しない要素を指定した場合
検索する値に「配列に存在しない要素」を指定して、array_keys()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 対象の配列'; $Europa = ['イタリア', 'ドイツ', 'ポルトガル', 'フランス']; var_dump($Europa); echo '⚫︎ array_keys()使用後'; $Europa_keys = array_keys($Europa, 'スペイン'); var_dump($Europa_keys); ?> |
実行結果
array_keys()の検索する値に存在しない配列の要素を指定すると、キーが取り出されません。
そのため、空の配列が表示されています。
配列に重複する要素を指定した場合
配列に重複する要素を指定して、array_keys()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 対象の配列'; $Europa = ['イタリア', 'ドイツ', 'ポルトガル', 'フランス', 'イタリア']; var_dump($Europa); echo '⚫︎ array_keys()使用後'; $Europa_keys = array_keys($Europa, 'イタリア'); var_dump($Europa_keys); ?> |
実行結果
配列に重複する要素を指定すると、該当するキーが全て取り出されるようになります。
そのため、「イタリア」のキーである「0」と「4」が表示されています。
array_keys()で厳密な比較を行って配列のキーを取得する場合
array_keys()で厳密な比較を行って配列のキーを取得するには、第3パラメータに「TRUE」を指定します。
array_keys()は型が違ってても、値が同じであれば配列のキーを取得することができます。
しかし、厳密な比較を行うと値だけでなく型までを比較して処理が行われるようになります。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php echo '⚫︎ 対象の配列'; $array1 = ['1', '15', '45', '90']; var_dump($array1); echo '⚫︎ array_keys()使用後(厳密な比較を行わない)'; $array1_rnd = array_keys($array1, 90); var_dump($array1_rnd); echo '⚫︎ array_keys()使用後(厳密な比較を行う)'; $array1_rnd = array_keys($array1, 90, TRUE); var_dump($array1_rnd); ?> |
実行結果
第3パラメータにTRUEを指定すると、厳密な比較を行うことができます。
そのため、TRUEを指定しない場合に、int型の「90」を指定するとキーを取得できていますが、TRUEを指定した場合では、キーを取得できていません。
array_keys()で多次元配列のキーを取得するサンプルコード
array_keys()で多次元配列のキーを取得するサンプルコードをご紹介します。
2次元配列のキーを取得する場合
2次元配列のキーを取得する場合に、array_keys()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php echo '⚫︎ 対象の配列'; $Europa = [ ['イタリア', 'ドイツ', 'ポルトガル'], ['フランス', 'スウェーデン', 'スペイン'], ['ポーランド', 'ノルウェー', 'イギリス'], ]; var_dump($Europa); echo '⚫︎ array_keys()使用後-1'; $Europa_keys1 = array_keys($Europa); var_dump($Europa_keys1); echo '⚫︎ array_keys()使用後-2'; $Europa_keys2 = array_keys($Europa[2], 'ノルウェー', TRUE); var_dump($Europa_keys2); ?> |
実行結果
array_keys()で2次元配列の要素のキーを取得しています。
また、配列の後ろにインデックスを1つ指定することで、2次元配列内にある1次元配列の要素のキーを取得することができます。
3次元配列のキーを取得する場合
3次元配列のキーを取得する場合に、array_keys()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php echo '⚫︎ 対象の配列'; $Europa = [ [['イタリア', 'ドイツ', 'ポルトガル'],['フランス', 'スウェーデン', 'スペイン']], [['ベルギー', 'フィンランド', 'アイルランド'],['チェコ', 'ルーマニア', 'ブルガリア']], [['モルドバ', 'キプロス', 'スロベニア'],['モナコ', 'ベラルーシ', 'モナコ']] ]; var_dump($Europa); echo '⚫︎ array_keys()使用後-1'; $Europa_keys1 = array_keys($Europa); var_dump($Europa_keys1); echo '⚫︎ array_keys()使用後-2'; $Europa_keys2 = array_keys($Europa[1], ['ベルギー', 'フィンランド', 'アイルランド'], TRUE); var_dump($Europa_keys2); echo '⚫︎ array_keys()使用後-3'; $Europa_keys3 = array_keys($Europa[2][0], 'スロベニア'); var_dump($Europa_keys3); ?> |
実行結果
array_keys()で3次元配列の要素のキーを取得しています。
また、配列の後ろにインデックスを1つ指定することで、3次元配列内にある2次元配列の要素のキーを取得することができます。
そして、配列の後ろにインデックスを2つ指定することで、3次元配列内にある1次元配列の要素のキーを取得することができます。
array_keys()で連想配列のキーを取得するサンプルコード
array_keys()で連想配列のキーを取得するサンプルコードをご紹介します。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php echo '⚫︎ 対象の連想配列'; $array1 = [ 'フランス' => 'France', 'ドイツ' => 'Germany', 'イタリア' => 'Italia', 'スペイン' => 'Spain', 'ポルトガル' => 'Portugal' ]; var_dump($array1); echo '⚫︎ array_keys()使用後-1'; $array1_rnd = array_keys($array1); var_dump($array1_rnd); echo '⚫︎ array_keys()使用後-2'; $array1_rnd = array_keys($array1, 'Germany', TRUE); var_dump($array1_rnd); ?> |
実行結果
array_keys()によって、連想配列のキーを取得しています。
配列や連想配列の値を取得する場合
配列や連想配列の値を取得する場合は、array_values()を使用します。
array_values()とは、配列の全ての値を取得する関数となります。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php echo '⚫︎ 対象の配列'; $array1 = ['イタリア', 'ドイツ', 'ポルトガル', 'フランス']; var_dump($array1); echo '⚫︎array_values()使用後'; $array1_rnd = array_values($array1); var_dump($array1_rnd); echo '⚫︎ 対象の連想配列'; $array1 = [ 'フランス' => 'France', 'ドイツ' => 'Germany', 'イタリア' => 'Italia', 'スペイン' => 'Spain', 'ポルトガル' => 'Portugal' ]; var_dump($array1); echo '⚫︎ array_values()使用後'; $array1_rnd = array_values($array1); var_dump($array1_rnd); ?> |
実行結果
array_values()によって指定した配列や連想配列の値を取得しています。
まとめ
⚫︎ array_keys()とは指定した指定した配列のキーを取り出す関数である
⚫︎ array_keys()は最大で3つのパラメータを指定することができる
・ 対象の配列(必須)
・ 検索する値(任意)
・ 厳密な比較(任意)
⚫︎ 要素が存在する配列に対してarray_keys()を使用すると、配列のキーが返される
⚫︎ 要素が空の配列に対してarray_keys()を使用すると、キーを取得できず、空の配列が返される
⚫︎ array_keys()の検索する値に「配列に存在する要素」を指定すると、指定した要素のキーが返される
⚫︎ array_keys()の検索する値に「配列に存在しない要素」を指定するとキーを取得できず、空の配列が返される
⚫︎ array_keys()で厳密な比較を行うには、第3パラメータにTRUEを指定する
⚫︎ array_keys()は、1次元配列のキーだけでなく、2次元配列や3次元配列のような多次元配列のキーを取得することができる
⚫︎ array_keys()は、配列のキーだけでなく、連想配列のキーも取得することができる
⚫︎ 配列や連想配列の値を取得するには、array_values()を使用する