・IT/Web系エンジニアの経験者の方
・どこの転職エージェントを利用しようか迷っている方
それなら、キッカケエージェントにご相談!
キッカケエージェントでは、少数精鋭のエージェントが、エンジニアの経験やスキル、志向性などをカウンセリングし、的確なアドバイスを提供します!
また、徹底した企業へのヒアリングにより、最適なマッチングを実現し、今では内定率が一般的なエージェントの2倍以上となっています!
転職エージェントに迷っている方、まずは無料でキャリア相談から!
(この記事は2022年8月13日に投稿されました。)
PHPで配列の値を埋める関数として、array_fill_keys()があります。
array_fill_keys()とはキーを指定して配列を値を埋める関数になります。
例えば、「[‘A’,’B’,’C’]」という配列をキーとして、「D」という値をそれぞれのキーに紐付けて配列を作成するとします。
すると、「array_fill_keys([‘A’,’B’,’C’], ‘D’);」とすることで、実現することが可能となります。
つまり、配列を作成するarray_fill()に比べて、array_fill_keys()は連想配列を作成することが可能になります。
また、2次元配列や3次元配列のような多次元配列でもfor文を使用することで、array_fill_keys()でキーを指定して配列の値を埋めることができます。
今回はPHPのarray_fill_keys()でキーを指定して配列の値を埋める方法について紹介していきます。
・キーを自分で設定して配列の値を埋めためい人
array_fill_keys()とは
array_fill_keys()とはキーを指定して配列の値を埋める関数となります。
キーを自分で設定し、それらのキーに対して指定した値で埋めることから連想配列を作成することができます。
array_fill_keys()の書き方
array_fill_keys()の書き方は下記のようになります。
1 | <?php array_fill('キーとなる配列', '埋める値'); ?> |
array_fill_keys()は必須パラメータである「キーとなる配列」と「埋める値」の2つを指定することで使用することができます。
array_fill_keys()のパラメータ
array_fill_keys()のパラメータは下記のようになります。
- キーとなる配列(必須)
キーとなる配列を指定する - 埋める値(必須)
配列の値として埋めるための値を指定する
1つ目のパラメータである「キーとなる配列」はキーとなる配列を指定します。
そして、2つ目のパラメータである「埋める値」は配列の値として埋めるための値をを指定します。
array_fill_keys()で配列に指定したキーに値を埋めるサンプルコード
array_fill_keys()で配列を指定した値で埋めるサンプルコードをご紹介します。
ここでは下記の2つの場合でarray_unshift()を使用してみます。
- キーとなる配列の値が一意性である場合
- キーとなる配列の値が重複する場
- キーとなる配列の値が空である場合
キーとなる配列の値が一意性である場合
キーとなる配列の値が一意性である場合にarray_fill_keys()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php echo '⚫︎ キーとなる配列'; $array_keys = ['HUBLOT', 'ROLEX', 'IWC', 'パテックフィリップ', 'オーデマ ピゲ']; print_r($array_keys); echo '⚫︎ 埋める値'; $val = 'watch'; echo $val; echo '⚫︎ array_fill_keys()使用後'; $array_watch = array_fill_keys($array_keys, $val); print_r($array_watch); ?> |
実行結果
array_fill_keys()によってキーとなる配列の値が一意性であると、指定したキー全てに値が引き当てられています。
そのため、「キーとなる配列」がそれぞれキーとなり、「watch」が値となって配列に格納されています。
キーとなる配列の値が重複する場合
キーとなる配列の値が重複する場合にarray_fill_keys()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php echo '⚫︎ キーとなる配列'; $array_keys = ['HUBLOT', 'ROLEX', 'IWC', 'パテックフィリップ', 'ROLEX']; print_r($array_keys); echo '⚫︎ 埋める値'; $val = 'watch'; echo $val; echo '⚫︎ array_fill_keys()使用後'; $array_watch = array_fill_keys($array_keys, $val); print_r($array_watch); ?> |
実行結果
array_fill_keys()によってキーとなる配列の値が重複すると、重複した分の値は削除され、1つしか要素が作成さなくなります。
そのため、5番目のキーが削除され、2番目のキーである「ROLEX」が配列に格納されています。
キーとなる配列の値が空である場合
キーとなる配列の値が空である場合にarray_fill_keys()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php echo '⚫︎ キーとなる配列'; $array_keys = []; print_r($array_keys); echo '⚫︎ 埋める値'; $val = 'watch'; echo $val; echo '⚫︎ array_fill_keys()使用後'; $array_watch = array_fill_keys($array_keys, $val); print_r($array_watch); ?> |
実行結果
array_fill_keys()によってキーとなる配列の値が空である場合は、配列は作成されません。
そのため、空の配列が返されるようになります。
array_fill_keys()で多次元配列に指定したキーに値を埋めるサンプルコード
array_fill_keys()で多次元配列を指定した値で埋めるサンプルコードをご紹介します。
array_fill_keys()で指定したキーに値を埋めるには、1次元配列のみが対象となります。
しかし、for文のような繰り返し処理を使用することで、多次元配列のキーを指定して値を埋めることが可能になります。
2次元配列の場合
2次元配列の場合にarray_fill_keys()を使用してみます。
⚫︎ 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 24 25 | <?php echo '⚫︎ 指定するキー1'; $array_keys1 = ['HUBLOT', 'ROLEX', 'IWC', 'パテックフィリップ', 'オーデマピゲ']; print_r($array_keys1); echo '⚫︎ 指定するキー2'; $array_keys2 = ['SEIKO', 'タグ・ホイヤー', 'パネライ', 'OMEGA', 'ヴァシュロン・コンスタンタン']; print_r($array_keys2); echo '⚫︎ 埋める値'; $val = 'watch'; echo $val; echo '⚫︎ array_fill_keys()使用後'; $watch_array = []; for($i = 0; $i < 2; $i++) { if($i == 0) { array_push($watch_array, array_fill_keys($array_keys1, $val)); } if($i == 1) { array_push($watch_array, array_fill_keys($array_keys2, $val)); } } print_r($watch_array); ?> |
実行結果
for文の中にarray_fill_keys()を使用することで、2次元配列のキーを指定して値が埋められています。
また、配列に要素を追加する関数としてarray_push()を使用しています。
もし、array_push()について詳しく知りたい場合は下記の記事をご参考ください。
3次元配列の場合
3次元配列の場合にarray_fill_keys()を使用してみます。
⚫︎ 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 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | <?php echo '⚫︎ 指定するキー1'; $array_keys1 = ['HUBLOT', 'ROLEX', 'IWC', 'パテックフィリップ', 'オーデマピゲ']; print_r($array_keys1); echo '⚫︎ 指定するキー2'; $array_keys2 = ['SEIKO', 'タグ・ホイヤー', 'パネライ', 'OMEGA', 'ヴァシュロン・コンスタンタン']; print_r($array_keys2); echo '⚫︎ 指定するキー3'; $array_keys3 = ['カルティエ', 'ジャガールクルト', 'ブレゲ', 'ブルガリ', 'ジラール・ペルゴ']; print_r($array_keys2); echo '⚫︎ 指定するキー4'; $array_keys4 = ['ブライトリング', 'ゼニス', 'パネライ', 'シャネル', 'ティファニー']; print_r($array_keys2); echo '⚫︎ 埋める値'; $val = 'watch'; echo $val; echo '⚫︎ array_fill_keys()使用後'; $watch_array = []; for($i = 0; $i < 2; $i++) { array_push($watch_array, []); for ($j = 0; $j < 2; $j++) { if($i == 0) { if($j == 0) { array_unshift($watch_array[$i], array_fill_keys($array_keys1, $val)); } if($j == 1) { array_unshift($watch_array[$i], array_fill_keys($array_keys2, $val)); } } if($i == 1) { if($j == 0) { array_unshift($watch_array[$i], array_fill_keys($array_keys3, $val)); } if($j == 1) { array_unshift($watch_array[$i], array_fill_keys($array_keys4, $val)); } } } } print_r($watch_array); ?> |
実行結果
多重for文の中にarray_fill_keys()を使用することで、3次元配列のキーを指定して値が埋められています。
また、配列に要素を追加する関数としてarray_unshift()を使用しています。
もし、array_unshift()について詳しく知りたい場合は下記の記事をご参考ください。
配列を指定した値で埋める場合
配列を指定した値で埋める場合はarray_fill()を使用します。
array_fill()とは指定した値で配列の値を埋める関数になります。
つまり、自分が指定した値で好きな数分の要素を含む配列を作成することができます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 埋める値'; $val = 'Apple Watch'; echo $val; echo '⚫︎ array_fill()使用後'; $array = array_fill(1, 7, $val); print_r($array); ?> |
実行結果
array_fill()によって配列を指定した値で埋められています。
そのため、「Apple Watch」が値となって配列に格納されています。
もし、array_fil()について詳しく知りたい場合は下記の記事をご参考ください。
配列のキーと値をそれぞれ指定した値で埋める場合
配列のキーと値をそれぞれ指定した値で埋める場合はarray_combine()を使用します。
array_combine()とは する関数になります。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php echo '⚫︎ キーとなる配列'; $array_keys = ['HUBLOT', 'ROLEX', 'IWC', 'パテックフィリップ', 'オーデマピゲ']; print_r($array_keys); echo '⚫︎値となる配列'; $array_vals = ['ビックバン', 'ヨットマスター', 'ポルトギーぜ', 'ノーチラス', 'ロイヤルオーク']; print_r($array_vals); echo '⚫︎array_combine()使用後'; $array_watch = array_combine($array_keys, $array_vals); print_r($array_watch); ?> |
実行結果
array_combine()によって配列のキーと値をそれぞれ指定した値で埋められています。
そのため、1つ目の配列が「キー」に、2つ目の「配列「」が値となって配列に格納されています。
まとめ
⚫︎ array_fill_keys()とは<キーを指定して配列の値を埋める関数である
⚫︎ array_fill_keys()を使用するには2つのパラメータが必須となる
・ キーとなる配列(必須)
・ 埋める数(必須)
⚫︎ キーとなる配列の値が一意性である場合にarray_fill_keys()を使用すると、それぞれがキーとなって値が埋められる
⚫︎ キーとなる配列の値が重複する場合にarray_fill_keys()を使用すると、重複した分の値は削除される
⚫︎ キーとなる配列の値が空である場合にarray_fill_keys()を使用すると、配列は作成されない
⚫︎ array_fill_key()で多次元配列のキーを指定して値を埋めるにはfor文を使用する
⚫︎ 配列を指定した値で埋める場合は、array_fill()を使用する
⚫︎ 配列のキーと値をそれぞれ指定した値で埋める場合は、array_combine()を使用する