・IT/Web系エンジニアの経験者の方
・どこの転職エージェントを利用しようか迷っている方
それなら、キッカケエージェントにご相談!
キッカケエージェントでは、少数精鋭のエージェントが、エンジニアの経験やスキル、志向性などをカウンセリングし、的確なアドバイスを提供します!
また、徹底した企業へのヒアリングにより、最適なマッチングを実現し、今では内定率が一般的なエージェントの2倍以上となっています!
転職エージェントに迷っている方、まずは無料でキャリア相談から!
(この記事は2022年6月28日に投稿されました。)
PHPで文字列を繰り返して並べる関数として、str_repeat()があります。
str_repeat()とは指定した文字列を指定した回数分、反復して表示する関数になります。
例えば、「abcde」という文字列にstr_repeat()を使用すると、「abcdeabcdeabcde」のように自分で設定した文字列を好きな回数分、繰り返して文字列が返されます。
しかし、繰り返す数に「0」を指定すると空文字が返され、負の数を指定するとエラーになってしまうので注意してください。
また、繰り返す数に小数を指定すると、小数値を切り捨てた回数となります。
そして、str_repeat()は文字列はもちろん、指定した配列の値を繰り返して文字列として並べることも可能です。
今回はPHPのstr_repeat()で文字列を繰り返して並べる方法について紹介していきます。
str_repeat()とは
冒頭でも言いましたが、str_repeat()とは、指定した文字列をn回反復して並べて出力する関数となります。
例えば、「abcde」という文字列にstr_repeat()を使用すると、「abcdeabcdeabcde」のように自分が設定した回数分を繰り返して、並べた文字列を返すようになります。
str_repeat()の書き方
str_repeat()の書き方は下記のようになります。
1 | <?php str_repeat('繰り返す文字列', '繰り返す数'; ?> |
str_repeat()のパラメータ
sstr_repeat()のパラメータは下記のようになります。
- 繰り返す文字列(必須):
繰り返したい文字列を指定する - 繰り返す数(必須):
繰り返す回数をインデックスで指定する
str_repeat()は、必須のパラメータとして「繰り返す文字列」と「繰り返す数」を指定することで使用することができます。
str_repeat()で文字を繰り返して並べるサンプルコード
str_repeat()で文字を繰り返して並べるサンプルコードについてご紹介します。
ここでは下記の3つの場合でstr_repeat()を使用してみます。
- 繰り返す数に正の数を指定した場合
- 繰り返す数に0を指定した場合
- 繰り返す数に負の数を指定した場合
繰り返す数に正の数を指定した場合
繰り返す数に正の数を指定した場合に、str_repeat()を使用してみます。
⚫︎ 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 $text1_1 = 'あいうえお'; echo '・対象の文字列: '; echo $text1_1; $text1_2 = str_repeat($text1_1, 3); echo '・str_repeat()を使用した結果: '; var_dump($text1_2); $text2_1 = 'aiueo'; echo '・対象の文字列: '; echo $text2_1; $text2_2 = str_repeat($text2_1, 4); echo '・str_repeat()を使用した結果: '; var_dump($text2_2); $text3_1 = 123456789; echo '・対象の文字列: '; echo $text3_1; $text3_2 = str_repeat($text3_1, 5); echo '・str_repeat()を使用した結果: '; var_dump($text3_2); ?> |
実行結果
繰り返す数に正の数を指定すると、指定した回数分の文字列を繰り返して表示するようになります。
そのため、3回、4回、5回と文字列が繰り返されて表示されています。
また、int型の文字列を指定すると、string型になって返されるようになります。
もし、int型の文字列のまま返したい場合は表示する前に型変換すると良いですよ。
繰り返す数に0を指定した場合
繰り返す数に0を指定した場合に、str_repeat()を使用してみます。
⚫︎ 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 $text1_1 = 'あいうえお'; echo '・対象の文字列: '; echo $text1_1; $text1_2 = str_repeat($text1_1, 0); echo '・str_repeat()を使用した結果: '; var_dump($text1_2); $text2_1 = 'aiueo'; echo '・対象の文字列: '; echo $text2_1; $text2_2 = str_repeat($text2_1, 0); echo '・str_repeat()を使用した結果: '; var_dump($text2_2); $text3_1 = 123456789; echo '・対象の文字列: '; echo $text3_1; $text3_2 = str_repeat($text3_1, 0); echo '・str_repeat()を使用した結果: '; var_dump($text3_2); ?> |
実行結果
繰り返す数に0を指定すると、何も返されません。
繰り返す数に負の数を指定した場合
繰り返す数に負の数を指定した場合に、str_repeat()を使用してみます。
⚫︎ 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 $text1_1 = 'あいうえお'; echo '・対象の文字列: '; echo $text1_1; $text1_2 = str_repeat($text1_1, -2); echo '・str_repeat()を使用した結果: '; var_dump($text1_2); $text2_1 = 'aiueo'; echo '・対象の文字列: '; echo $text2_1; $text2_2 = str_repeat($text2_1, -3); echo '・str_repeat()を使用した結果: '; var_dump($text2_2); $text3_1 = 123456789; echo '・対象の文字列: '; echo $text3_1; $text3_2 = str_repeat($text3_1, -4); echo '・str_repeat()を使用した結果: '; var_dump($text3_2); ?> |
実行結果
繰り返す数に負の数を指定すると、「0か0よりも大きい数字を指定してください。」というエラーが発生します。
str_repeat()の繰り返す数に小数を指定した場合
繰り返す数に小数を指定して、str_repeat()を使用してみます。
⚫︎ 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 $text1_1 = 'あいうえお'; echo '・対象の文字列: '; echo $text1_1; $text1_2 = str_repeat($text1_1, 6.8); echo '・str_repeat()を使用した結果: '; var_dump($text1_2); $text2_1 = 'aiueo'; echo '・対象の文字列: '; echo $text2_1; $text2_2 = str_repeat($text2_1, 5.4); echo '・str_repeat()を使用した結果: '; var_dump($text2_2); $text3_1 = 123456789; echo '・対象の文字列: '; echo $text3_1; $text3_2 = str_repeat($text3_1, 2.0); echo '・str_repeat()を使用した結果: '; var_dump($text3_1); ?> |
実行結果
str_repeat()の繰り返す数に小数を指定すると、小数の値が切り捨てられた値の数が繰り返されて表示されます。
そのため、「6.8」だと6回、「5.4」だと5回、「2.0」だと2回、繰り返されて表示されています。
str_repeat()で配列の値を繰り返して並べるサンプルコード
str_repeat()で配列の値を繰り返して並べるサンプルコードについてご紹介します。
ここでは、下記の2つの場合でstr_repeat()を使用してみます。
- 指定した配列の値を繰り返して並べる場合
- 指定した連想配列の値を繰り返して並べる場合
指定した配列の値を繰り返して並べる場合
指定した配列の値に、str_repeat()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php $array1_1 = ['りんご', 'ぶどう', 'いちご']; echo '・対象の1次元配列: '; var_dump($array1_1); $array1_2 = str_repeat($array1_1[1], 4); echo '・str_repeat()を使用した結果: '; var_dump($array1_2); $array2_1 = [ ['りんご', 'ぶどう', 'いちご'], ['バナナ', 'メロン', 'パイナップル'] ]; echo '・対象の2次元配列: '; var_dump($array2_1); $array2_2 = str_repeat($array2_1[1][2], 3); echo '・str_repeat()を使用した結果: '; var_dump($array2_2); ?> |
実行結果
str_repeat()によって指定した配列の値を繰り返して並べることができます。
そのため、配列の値である「ぶどう」が4回、「パイナップル」が3回繰り返されて文字列として表示されています。
指定した連想配列の値を繰り返して並べる場合
指定した連想配列の値に、str_repeat()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php $array1_1 = ['りんご' => 'apple', 'いちご' => 'strawberry', 'ぶどう' => 'grape']; echo '・対象の連想配列: '; var_dump($array1_1); $array1_2 = str_repeat($array1_1['いちご'], 4); echo '・str_repeat()を使用した結果: '; var_dump($array1_2); ?> |
実行結果
str_repeat()によって、指定した連想配列の値を繰り返して並べることができます。
そのため、連想配列の「いちご」の値である「strawberry」が4回繰り返されて文字列として表示されています。
str_repeat()を使わずに文字列を繰り返して並べる場合
PHPで、文字列を繰り返して並べるにはstr_repeat()を使用しますが、実はこちらの関数を使用せずに文字列を繰り返して並べることができます。
それは下記のようなコードになります。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php <?php $text1_1 = '桃太郎'; echo '・対象の文字列: '; echo $text1_1; $text1_2 = str_repeat($text1_1, 3); echo '・str_repeat()を使用した場合'; var_dump($text1_2); echo '・str_repeat()を使用しなかった場合'; $text2_1 = origin_repeat($text1_1, 3); var_dump($text2_1); function origin_repeat($val, $count) { $vala = ''; for($i = 0 ; $i < $count; $i++) { $repeat = $repeat.$val; } return $repeat; } ?> |
実行結果
str_repeat()を使用した場合も使用しなかった場合も同じように文字列が繰り返されて表示されています。
また、コードの解説は下記のようになります。
- 繰り返して表示したい文字列を連結させて新たな変数に格納する
- for文などの繰り返し処理で好きな回数分繰り返す
str_repeat()を使用しなくても、文字列を繰り返して表示することはできますが、str_repeat()を使用した方が簡単で良さそうです。
まとめ
⚫︎ str_repeat()とは指定した文字列を反復して並べる関数である
⚫︎ str_repeat()を使用するには2つのパラメータが必須となる
・ 繰り返す文字列(必須)
・ 繰り返す数(必須)
⚫︎ str_repeat()の繰り返す数に正の数を指定すると、指定した回数分の文字列を繰り返して表示する
⚫︎ str_repeat()のり返す数に0を指定すると、何も返されない
⚫︎ str_repeat()の繰り返す数に負の数を指定すると、エラーが発生する
⚫︎ str_repeat()の繰り返す数に小数を指定すると、小数が切り捨てられた数値分、繰り返されて表示する
⚫︎ str_repeat()は、文字列だけでなく配列の値を繰り返して並べることもできる