・IT/Web系エンジニアの経験者の方
・どこの転職エージェントを利用しようか迷っている方
それなら、キッカケエージェントにご相談!
キッカケエージェントでは、少数精鋭のエージェントが、エンジニアの経験やスキル、志向性などをカウンセリングし、的確なアドバイスを提供します!
また、徹底した企業へのヒアリングにより、最適なマッチングを実現し、今では内定率が一般的なエージェントの2倍以上となっています!
転職エージェントに迷っている方、まずは無料でキャリア相談から!
(この記事は2022年8月11日に投稿されました。)
PHPで配列の値を埋める関数として、array_fill()があります。
array_fill()とは配列を指定した値で埋める関数になります。
例えば、「array_fill(0, 4, 0)」を呼び出すと、「[0, 0, 0, 0]」というように、配列が返り値として返されるようになります。
しかし、array_fill()のみで作成できる配列は1次元配列のみとなりますので注意してください。
そのため、2次元配列や3次元配列のような多次元配列を指定した値で埋めたい場合はfor文と組み合わせて使用しましょう。
今回はPHPのarray_fill()で配列を指定した値で埋める方法について紹介していきます。
・PHPで配列の初期化を行いたい人
array_fill()とは
array_fill()とは配列に指定した値で埋める関数となります。
任意の値を任意の数分、配列に格納ことができ、格納された配列が返り値として返すようになります。
array_fill()の書き方
array_fill()の書き方は下記のようになります。
1 | <?php array_fill('配列の先頭要素の位置', '埋める数', '指定する値'); ?> |
array_fill()は必須パラメータである「配列の先頭要素の位置」と「埋める数」、「指定する値」の3つを指定することで使用することができます。
array_fill()のパラメータ
array_fill()のパラメータは下記のようになります。
- 配列の先頭要素の位置(必須)
配列の先頭要素の位置をインデックスで指定する - 埋める数(必須)
配列に埋める値の数を指定する - 指定する値(必須)
配列に埋めるための値を指定する
1つ目のパラメータである「配列の先頭要素の位置」は配列の先頭要素の位置をインデックスで指定します。
そして、2つ目のパラメータである「埋める数」は配列に埋める値の数を指定します。
さらに、3つ目のパラメータである「指定する値」は配列に埋めるための値をを指定します。
array_fill()で配列を指定した値で埋めるサンプルコード
array_fill()で配列を指定した値で埋めるサンプルコードをご紹介します。
ここでは下記の4つの場合でarray_fill()を使用してみます。
- 文字列を指定した場合
- 整数を指定した場合
- 小数を指定した場合
- 真偽値を指定した場合
- NULLを指定した場合
文字列を指定した場合
文字列を指定した場合にarray_fill()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 埋める値'; $person = '藍染惣右介'; echo $person; echo '⚫︎ array_fill()使用後'; $person_array = array_fill(2, 7, $person); print_r($person_array); ?> |
実行結果
array_fill()によって文字列の値が配列に埋められています。
そのため、「藍染惣右介」が値として配列に格納されています。
整数を指定した場合
整数を指定した場合にarray_fill()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 埋める値'; $num = 5; echo $num; echo '⚫︎ array_fill()使用後'; $num_array = array_fill(3, 7, $num); print_r($num_array); ?> |
実行結果
array_fill()によって整数の値が配列に埋められています。
そのため、「5」が値として配列に格納されています。
小数の値を指定した場合
小数を指定した場合にarray_fill()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 埋める値'; $num = 0.05; echo $num; echo '⚫︎ array_fill()使用後'; $num_array = array_fill(4, 7, $num); print_r($num_array); ?> |
実行結果
array_fill()によって小数の値が配列に埋められています。
そのため、「0.05」が値として配列に格納されています。
真偽値の値を指定した場合
真偽値を指定した場合にarray_fill()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 埋める値'; $bool = true; var_dump($bool); echo '⚫︎ array_fill()使用後'; $bool_array = array_fill(5, 7, $bool); var_dump($bool_array); ?> |
実行結果
array_fill()によって真偽値が配列に埋められています。
そのため、「true」が値として配列に格納されています。
NULLを指定した場合
NULLを指定した場合にarray_fill()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 埋める値'; $null = NULL; var_dump($null); echo '⚫︎ array_fill()使用後'; $null_array = array_fill(3, 5, $null); var_dump($null_array); ?> |
実行結果
array_fill()によってNULLの値が配列に埋められています。
そのため、「NULL」が値として配列に格納されています。
埋める数を範囲外に指定してarray_fill()を使用した場合
埋める数を範囲外に指定してarray_fill()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 埋める値'; $person = '黒崎一護'; var_dump($person); echo '⚫︎ array_fill()使用後'; $person_array = array_fill(5, -1, $person); var_dump($person_array ); ?> |
実行結果
埋める数を範囲外に指定したため値を埋めることができず、エラーが発生していまいます。
array_fill()で多次元配列を指定した値で埋めるサンプルコード
array_fill()で多次元配列を指定した値で埋めるサンプルコードをご紹介します。
array_fill()で指定した値を埋めるには、1次元配列のみが対象となります。
しかし、for文のような繰り返し処理を使用することで、多次元配列の値を指定した値で埋めることが可能になります。
2次元配列の場合
array_fill()で2次元配列を指定した値で埋めてみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 | <?php echo '⚫︎ 埋める値'; $num = 0; print_r($num); echo '⚫︎ array_fill()使用後'; $num_array = []; for($i = 0; $i < 2; $i++) { array_push($num_array, array_fill(0, 3, $num)); } var_dump($num_array); ?> |
実行結果
for文とarray_fill()によって2次元配列が指定した値で埋まっています。
また、array_push()を使用することでarray_fill()で値を埋めた配列を空の配列に追加しています。
もし、array_push()について詳しく知りたい場合は下記の記事をご参考ください。
3次元配列の場合
array_fill()で3次元配列を指定した値で埋めてみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php echo '⚫︎ 埋める値'; $num = 0; print_r($num); echo '⚫︎ array_fill()使用後'; $num_array = []; for($i = 0; $i < 3; $i++) { array_push($num_array, []); for ($j = 0; $j < 2; $j++) { array_unshift($num_array[$i], array_fill(0, 3, $num)); } } print_r($num_array); ?> |
実行結果
for文とarray_fill()によって3次元配列が指定した値で埋まっています。
こちらは、array_unshift()を使用してarray_fill()で値を埋めた配列を空の配列に追加しています。
もし、array_unshift()について詳しく知りたい場合は下記の記事をご参考ください。
配列の値をある範囲の整数で埋める場合
配列の値をある範囲の整数で埋める場合はrange()を使用します。
range()とは指定した範囲内から連続する要素を持つ配列を作成する関数となります。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 埋める値'; $num = '1~6'; print_r($num); echo '⚫︎ range()使用後'; $num_array = range(1,6); print_r($num_array); ?> |
実行結果
range()によって、範囲の整数で配列の値が埋められています。
そのため、1から6の数字が値となって配列に格納されています。
もし、range()について詳しく知りたい場合は下記の記事をご参考ください。
連想配列を指定した値で埋める場合
連想配列を指定した値で埋める場合はarray_fill_keys()を使用します。
array_fill_keys()とは、キーを指定して配列の値を埋めることができる関数となります。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php echo '⚫︎キーにする配列'; $person_keys = ['山本源流斎重国', '砕蜂', '市丸ギン', '東仙要']; print_r($person_keys); echo '⚫︎ 埋める値'; $val = 'BLEACH'; echo $val; echo '⚫︎ array_fill_keys()使用後'; $person_array = array_fill_keys($person_keys, $val); print_r($person_array); ?> |
実行結果
array_fill_keys()によって指定したキーに配列の値を埋めています。
そのため、こちらの関数を使用することで連想配列を指定した値で埋めることが可能になります。
もし、array_fill_keys()について詳しく知りたい場合は下記の記事をご参考ください。
まとめ
⚫︎ array_fill()とは配列に指定した値で埋める関数である
⚫︎ array_fill()を使用するには3つのパラメータが必須となる
・ 最配列の先頭要素の位置(必須)
・ 埋める数(必須)
・ 指定する値(必須)
⚫︎ 指定する値に文字列を指定してarray_fill()を使用すると、配列の値が文字列として埋まる
⚫︎ 指定する値に整数を指定してarray_fill()を使用すると、配列の値が整数として埋まる
⚫︎ 指定する値に小数を指定してarray_fill()を使用すると、配列の値が小数として埋まる
⚫︎ 指定する値に真偽値を指定してarray_fill()を使用すると、配列の値が真偽値として埋まる
⚫︎ 指定する値にNULLを指定してarray_fill()を使用すると、配列の値がNULLとして埋まる
⚫︎ array_fill()の埋める数に範囲外の数値を指定するとエラーが発生する
⚫︎ array_fill()で多次元配列の値を埋めるにはfor文を使用する
⚫︎ 配列の値をある範囲の整数で埋める場合は、range()を使用する
⚫︎ 連想配列を指定した値で埋める場合は、array_fill_keys()を使用する