・IT/Web系エンジニアの経験者の方
・どこの転職エージェントを利用しようか迷っている方
それなら、キッカケエージェントにご相談!
キッカケエージェントでは、少数精鋭のエージェントが、エンジニアの経験やスキル、志向性などをカウンセリングし、的確なアドバイスを提供します!
また、徹底した企業へのヒアリングにより、最適なマッチングを実現し、今では内定率が一般的なエージェントの2倍以上となっています!
転職エージェントに迷っている方、まずは無料でキャリア相談から!
(この記事は2022年7月13日に投稿されました。)
PHPで通し番号の要素を持つ配列を作成する方法として、range()があります。
range()とは指定した範囲内から連続する要素を持つ配列を作成する関数であり、指定した範囲で使用すると範囲内の通し番号を要素として配列を作成するようになります。
そして、range()は増減値を指定することができるので、連続する要素に間隔を空けて配列を作成することができます。
また、range()は数値だけの配列を作成する関数とらわれがちですが、
アルファベットや記号のような文字を要素として配列を作成することができたり、foreach文を使用することで作成した配列の要素を取り出すことができたりもします。
今回はPHPのrange()で通し番号の要素を持つ配列を作成する方法について紹介していきます。
range()とは
冒頭でも言いましたが、range()とは、指定した範囲内から連続する要素を持つ配列を作成する関数となります。
例えば、「0〜5」の範囲でrange()を使用すると「[0,1,2,3,4,5]」のように、通し番号の要素を持つ配列を返り値として返すようになります。
range()の書き方
range()の書き方は下記のようになります。
1 | <?php range('開始値', '終了値'[, '増減値']); ?> |
range()は基本2つのパラメータを指定すると使用することができますが、最大で3つのパラメータを指定することができます。
range()のパラメータ
range()のパラメータは下記のようになります。
- 開始値(必須):
配列を作成するための開始値を指定する
(この値から要素を作成する) - 終了値(必須):
配列を作成するための終了値を指定する
(この値までを上限とする) - 増減値(任意):
要素を作成するための増減数を指定する
(デフォルトの増減は1)
range()は必須なパラメータとして、「開始値」と「終了値」を指定します。
そして、任意なパラメータとして、「増減値」を指定することができます。
range()で通し番号の要素を持つ配列を作成するサンプルコード
range()で通し番号の要素を持つ配列を作成するサンプルコードをご紹介します。
ここでは下記の3つの場合でrange()を使用してみます。
- 開始値を終了値より小さくした場合
- 開始値を終了値より大きくした場合
- 開始値や終了値に小数を指定した場合
開始値を終了値より小さくした場合
開始値を終了値より小さくした場合に、range()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 | <?php echo '⚫︎ range()で配列を作成-1'; $array1_1 = range(0, 5); var_dump(array1_1); echo '⚫︎ range()で配列を作成-2'; $array1_2 = range(-5, 0); echo "\n"; var_dump(array1_2); ?> |
実行結果
開始値を終了値より小さくした場合は、通し番号を要素として配列が作成されています。
そのため、「0〜5」と「-5〜0」の要素を持つ配列が表示されています。
開始値を終了値より大きくした場合
開始値を終了値より大きくした場合に、range()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ range()で配列を作成'; $array2_1 = range(10, 5); var_dump(array2_1); echo '⚫︎ range()で配列を作成'; array2_2 = range(3, -3); var_dump(array2_2); ?> |
実行結果
開始値を終了値より大きくした場合でも、通し番号を要素として配列が作成されています。
そのため、「10〜5」の要素を持つ配列が表示されています。
開始値や終了値に小数を指定した場合
開始値や終了値に小数を指定した場合にrange()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ range()で配列を作成-1'; array3_1 = range(1.5, 8); var_dump(array3_1); echo '⚫︎ range()で配列を作成-2'; array3_2 = range(1, 8.5); var_dump(array3_2); ? |
実行結果
開始値や終了値に小数を指定した場合でも、通し番号を要素として配列が作成されています。
しかし、要素は終了値をオーバーする前の値までが対象となります。
そのため、「1.5〜7.5」の要素と「1〜8」の要素を持つ配列が表示されています。
「8.5」や「9」はそれぞれの終了値をオーバーしてしまうので「7.5」と「8」までが配列の要素となります。
増減値を指定して通し番号の要素を持つ配列を作成するサンプルコード
range()の第3パラメータである増減値を指定して、通し番号の要素を持つ配列を作成するサンプルコードをご紹介します。
ここでは、下記の2つの場合でrange()を使用してみます。
- 増減値に正の数を指定した場合
- 増減値に負の数を指定した場合
増減値に正の数を指定した場合
増減値に正の数を指定した場合にrange()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ range()で配列を作成-1'; array4_1 = range(0, 100, 20); var_dump(array4_1); echo '⚫︎ range()で配列を作成-2'; array4_2 = range(1.5, 10, 2); var_dump(array4_2); ?> |
実行結果
増減値に正の数を指定した場合は、増減数の間隔を空けた要素を持つ配列が作成されています。
そのため、「0〜100」の間で「20」の間隔を空けた要素と「1.5〜9.5」の間で「2」の間隔を空けた要素を持つ配列が表示されています。
増減値に負の数を指定した場合
増減値に負の数を指定した場合にrange()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 | <?php echo '⚫︎ range()で配列を作成-1'; $array5_1 = range(100, 0, -20); echo "\n"; var_dump($array5_1); echo '⚫︎ range()で配列を作成-2'; $array5_2 = range(10, 1.5, -2); var_dump($array5_2); ?> |
実行結果
増減値に負の数を指定した場合でも、増減数の間隔を空けた要素を持つ配列が作成されています。
そのため、「100〜0」の間で「-20」の間隔を空けた要素と「10〜1.5」の間で「-2」の間隔を空けた要素を持つ配列が表示されています。
range()で文字の要素を持つ配列を作成する場合
range()は通し番号だけでなく、文字の要素を持つ配列も作成することができます。
そのため、ここでは下記の2つの配列をrange()で作成してみます。
- アルファベットを要素として配列を作成する場合
- 記号を要素として配列を作成する場合
range()はASCIIコードの順に従って文字の出力を行います。
アルファベットの要素を持つ配列を作成する場合
アルファベットの要素を持つ配列を作成する場合は、開始値と終了値にアルファベットを指定します。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ range()で配列を作成-1'; $array6_1 = range('a', 'g'); var_dump($array6_1); echo '⚫︎ range()で配列を作成-2'; $array6_2 = range('a', 'z', 2); var_dump($array6_2); ?> |
実行結果
range()の開始値と終了値にアルファベットを指定することで、連続するアルファベットを要素として配列を作成することができます。
そのため、「a〜g」の要素と「a〜z」の間で2つ間隔を空けた要素を持つ配列が表示されています。
記号の要素を持つ配列を作成する場合
記号の要素を持つ配列を作成する場合は、開始値と終了値に記号を指定します。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ range()で配列を作成-1'; $array7_1 = range('!', '%'); var_dump($array7_1); echo '⚫︎ range()で配列を作成-2'; $array7_2 = range('!', '/', 2); var_dump($array7_2); ?> |
実行結果
range()の開始値と終了値に記号を指定することで、連続する記号を要素として配列を作成することができます。
そのため、「!〜%」の要素と「!〜/」の間で2つ間隔を空けた要素を持つ配列が表示されています。
range()で作成した配列の要素を取り出したい場合
range()で作成した配列の要素を取り出したい場合は、foreach文を使用します。
⚫︎ 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 '⚫︎ range()で配列を作成-1'; $array8_1 = range(0, 10, 2); var_dump($array8_1); echo '⚫︎ range()で作成した配列の要素を取り出す-1'; foreach ($array8_1 as $val1) { echo $val1; echo "\n"; } echo '⚫︎ range()で配列を作成-2'; $array8_2 = range('a', 'g'); var_dump($array8_2); echo '⚫︎ range()で作成した配列の要素を取り出す-2'; foreach ($array8_2 as $val2) { echo $val2; echo "\n"; } ?> |
実行結果
foreach文によってrange()で作成された配列の要素が取り出されています。
もし、foreach文について詳しく知りたい場合は下記の記事をご参考ください。
まとめ
⚫︎ range()とは指定した範囲内から連続する要素を持つ配列を作成する関数ある
⚫︎ range()は最大で3つのパラメータを指定することができる
・ 開始値(必須)
・ 終了値(必須)
・ 増減値(任意)
⚫︎ 開始値を終了値より小さくした場合にrange()を使用すると、通し番号を要素として配列が作成される
⚫︎ 開始値を終了値より大きくした場合にrange()を使用しても、通し番号を要素として配列が作成される
⚫︎ 開始値や終了値に小数を指定した場合にrange()を使用しても、通し番号を要素として配列が作成される
(終了値をオーバーする前の値までが要素となる)
⚫︎ のパラメータである増減値を指定してrange()を使用すると、増減数の間隔を空けた要素を持つ配列が作成される
⚫︎ range()は通し番号だけでなく、アルファベットや記号のような文字の要素を持つ配列を作成することができる
⚫︎ range()はforeach文を使用することで、作成した配列の要素を取り出すことができる