「どのような関数を使用したらいいのかな」
このようにPHP学習では、配列のkeyを取得する機会は多くあります。しかしまだ学習して間もない方にとっては、難しいのではないでしょうか。
PHPをはじめプログラミングには関数と呼ばれるものがあり、場面によって使い分けてコードを記述していきます。
今回は配列のkeyの取得方法について、この記事で詳しく紹介するのでぜひ参考にしてくださいね。
目次
PHPのkeyとは何のこと?
PHPの配列の「key」とは、配列の添字(インデックス)の代わりや連想配列のキーのことです。配列のkeyを取得するためには「array_keys関数」を使用し、このarray_keys関数は戻り値としてkey名だけの新しい配列を返す仕組みです。
まずはプログラミングにおける「変数」と「配列」について理解を深めてみましょう。
変数について
変数とは、プログラミングの「データを入れる箱」とイメージすることができます。この箱の中にいれるデータのことを値と呼びます。
値には数字・文字列とありますが、一つの変数には一つの値しか入れることはできないことを覚えておきましょう。
配列について
配列とは 先程のデータを入れる箱が複数つながっているイメージだといえます。プログラミングは複数の値を取り扱い、最も配列の利用頻度が高いのが繰り返し処理などが挙げられます。
例えばクラス全員のテストの点数や得意科目など、同じ意味を持つ複数のデータを利用した計算などに用いられる処理です。
PHPでarray_keys関数をマスターして配列を効果的に使おうarray_keys関数の使い方【配列のキーを取得】
PHPは連想配列という配列において、「key」と「value」のセットで連想配列にデータを格納します。一方で通常の配列でデータの格納を行う方法があります。
array_keys関数で値を出力する方法はいくつかあり、それぞれ記述方法が異なるため確認してみましょう。
まずは配列のキーを全て取得する方法についてです。
通常の配列の場合
1 2 3 |
$member = array("鈴木一郎", "山田太郎", "渡辺隆", "池田花子", "佐藤清"); print_r(array_keys($member)); |
上記のプログラムを出力させると、下記の通りとなります。通常の配列ではキーは存在しないものの、要素番号(インデックス)を得ることが可能です。
1 2 3 4 5 6 7 8 |
Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 ) |
連想配列の場合
1 2 3 |
$member = array("鈴木一郎"=>28, "山田太郎"=>33, "渡辺隆"=>41, "池田花子"=>33, "佐藤清"=>21); print_r(array_keys($member)); |
上記のプログラムでは名前をキーに、そこに付与した数値(年齢)を値としています。上記のプログラムを出力させると、下記のようになります。
1 2 3 4 5 6 7 8 |
Array ( [0] => 鈴木一郎 [1] => 山田太郎 [2] => 渡辺隆 [3] => 池田花子 [4] => 佐藤清 ) |
このようにPHPの連想配列は、「key」と「value」のセットでデータを管理することを覚えておきましょう。
PHPの連想配列(Key-Value Array)の基礎をおさえようarray_keys関数の使い方【指定したキーのみの取得】
続いて、指定したキーのみを取得する方法についてご紹介します。
通常の配列の場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $yen = [ '100円', '200円', '300円', '400円', '500円']; $yen_key = array_keys($yen, '200円'); print_r($yen_key); ?> |
実行結果
指定した配列の要素のキーを取得する場合は、array_keys関数の第二引数に、配列の要素に含まれる値を指定します。
要素番号は0番目から数えて1番目に値200円が位置しているので、上記のような実行結果になります。
連想配列の場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php $fruits = [ 'apple'=>'100円', 'orange'=>'200円', 'grape'=>'300円', 'banana'=>'200円', 'peach' => '400円', 'pineapple'=>'500円' ]; $fruits_key = array_keys($fruits, '200円'); print_r($fruits_key); ?> |
実行結果
こちらの例ではarray_keys関数の第二引数に配列の値200円を指定しています。
実行結果のとおり、指定した値のキーであるorangeとbananaが取得されて、新しい配列に入っていることが確認できます。
array_keys関数の使い方【型を指定したキーの取得】
形を指定した配列の要素のキーを取得する場合、array_keys関数の第三引数に「True」を指定します。 型の指定「あり」と「なし」でご紹介するので参考にしてみてください。
指定なしの場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php $fruits = [ 'apple'=>'100', 'orange'=>'200', 'melon'=>'300', 'banana'=>'200', 'pineapple'=>'500', 'grape'=> 300, 'lemon' => 120 ]; $fruits_key = array_keys($fruits, '300'); print_r($fruits_key); ?> |
実行結果
第二引数で値 ’300’ を指定いるため、この場合型は関係なく、値が ’300’ のmelonキーと値が 300のgrapeキーが取得されます。
第三引数を指定しない場合はデフォルト値がFalseとなっているので、型の指定はされません。
指定ありの場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
?php $fruits = [ 'apple'=>'100', 'orange'=>'150', 'melon'=>'300', 'banana'=>'200', 'pineapple'=>'500', 'grape'=> 300, 'lemon' => 120 ]; $fruits_key = array_keys($fruits, '300', true); print_r($fruits_key); ?> |
実行結果
型の指定ありのコードは、’300’の値と完全に一致しているmelonキーのみを取得しています。
このように、完全に値の型まで比較したい場合は、array_keys関数の第三引数にTrueを指定することを覚えておきましょう。
まとめ
いかがでしたか?
今回の記事では、「PHPで配列のkeyを取得する方法」についてご紹介しました。
必要な関数は「array_keys関数」です。 PHPでコードを記述する際は頻繁に使用する関数なので、しっかりと覚えておきましょう。