Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
str_pad() / str_repeat()対応: PHP 4(2000)
文字列を指定した長さになるまで別の文字で埋めたり、同じ文字列を繰り返し連結したりします。固定長データの生成やテキストの整形に活用されます。
構文
// 文字列を指定した長さまで埋めます。 str_pad($string, $length, $pad_string, $pad_type); // 文字列を指定した回数だけ繰り返します。 str_repeat($string, $times);
関数一覧
| 関数 | 概要 |
|---|---|
| str_pad($string, $length, $pad_string, $pad_type) | $string を $length の長さになるまで $pad_string で埋めます。$pad_type で埋める方向を指定でき、STR_PAD_RIGHT が右側、STR_PAD_LEFT が左側、STR_PAD_BOTH が両側です。 |
| str_repeat($string, $times) | $string を $times 回繰り返した文字列を返します。 |
戻り値
『str_pad()』は指定した長さまで埋めた文字列を返します。元の文字列が指定した長さ以上の場合はそのまま返されます。『str_repeat()』は繰り返した文字列を返します。
サンプルコード
<?php
// 右側をスペースで埋めます。既定では右側が埋められます。
echo str_pad("PHP", 10); // 『PHP 』と出力されます。7個のスペースが追加されます。
// 左側をゼロで埋めます。
echo str_pad("42", 5, "0", STR_PAD_LEFT); // 『00042』と出力されます。
// 両側をハイフンで埋めます。
echo str_pad("タイトル", 20, "-", STR_PAD_BOTH); // 両側にハイフンが追加されます。
// 埋める文字列に複数文字を指定できます。
echo str_pad("1", 10, "=-", STR_PAD_RIGHT); // 『1=-=-=-=-=-』のように繰り返して埋められます。
// str_repeat() で文字列を繰り返します。
echo str_repeat("*", 10); // 『**********』と出力されます。
// 区切り線の生成に活用する例です。
echo str_repeat("-", 40); // 40文字のハイフン線が出力されます。
// インデントの生成に活用する例です。
$depth = 3;
$indent = str_repeat(" ", $depth);
echo $indent . "ネストされた項目"; // 6文字分のスペースの後に文字列が出力されます。
// 注文番号のゼロ埋めに活用する例です。
$order_id = 157;
echo "ORD-" . str_pad($order_id, 6, "0", STR_PAD_LEFT); // 『ORD-000157』と出力されます。
// 金額の右寄せ表示に活用する例です。
$items = ["りんご" => 150, "みかん" => 80, "ぶどう" => 500];
foreach ($items as $name => $price) {
echo str_pad($name, 10) . str_pad($price, 6, " ", STR_PAD_LEFT) . "円\n";
}
概要
『str_pad()』は文字列を指定した長さになるまで別の文字で埋める関数です。第4引数で埋める方向を制御でき、STR_PAD_RIGHT が右側、STR_PAD_LEFT が左側、STR_PAD_BOTH が両側への埋め込みになります。省略時は STR_PAD_RIGHT が適用されます。
注文番号のゼロ埋めには str_pad($id, 6, "0", STR_PAD_LEFT) のように使い、『sprintf()』の %06d と同じ結果が得られます。テキストの整形やCSV出力の固定幅データ生成にも便利です。
『str_repeat()』は文字列を指定回数繰り返す関数で、区切り線やインデントの生成に活用されます。回数に0を指定すると空文字列を返し、負の値を指定するとエラーになります。書式指定のフォーマットには『sprintf()』、文字列の切り出しには『substr()』を使用してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。