プログラミングにおいて、特定の長さになるまで文字列を埋めたいというケースは少なくありません。特にテーブル表示やテキストの整形、データのエクスポートなどでよく見られます。PHPでこのようなことを実現するのに最も便利な関数が str_pad です。今回はこの str_pad 関数について詳しく見ていきましょう。
基本的な構文
まずは基本的な構文から確認します。
str_pad ( string $input , int $pad_length , string $pad_string = " " , int $pad_type = STR_PAD_RIGHT ) : string
この関数は4つのパラメーターを持っていますが、後ろの2つはオプションです。
- $input: パディングを追加する元となる文字列。
- $pad_length: 出力する文字列の全体の長さ。
- $pad_string: パディングに使用する文字(または文字列)。デフォルトはスペースです。
- $pad_type: パディングを追加する方向。STR_PAD_RIGHT(デフォルト)、STR_PAD_LEFT、STR_PAD_BOTH のいずれかです。
パディングの方向とオプション
右側にパディング(デフォルト)
デフォルトでは、str_pad 関数は右側にスペースを追加します。
echo str_pad("Hello", 10); // 出力: "Hello "
左側にパディング
STR_PAD_LEFT オプションを使うと、左側に任意の文字でパディングできます。
echo str_pad("World", 10, "*", STR_PAD_LEFT); // 出力: "*****World"
両側にパディング
STR_PAD_BOTH オプションを使えば、文字列の両側に均等にパディングが追加されます。
echo str_pad("PHP", 10, "#", STR_PAD_BOTH); // 出力: "###PHP####"
実践的な使用例
テキストテーブルの作成
テキストベースでのテーブルを作成する場合にも str_pad は役立ちます。
$headers = ["Name", "Age", "Occupation"];
$data = [
["Alice", 30, "Engineer"],
["Bob", 22, "Designer"],
["Charlie", 35, "Doctor"],
];
echo str_pad($headers[0], 15) . str_pad($headers[1], 5) . str_pad($headers[2], 12) . "\n";
echo str_repeat("-", 32) . "\n";
foreach ($data as $row) {
echo str_pad($row[0], 15) . str_pad($row[1], 5) . str_pad($row[2], 12) . "\n";
}
このコードを実行すると、各カラムが整列された綺麗なテキストテーブルが出力されます。
クリスマスツリーの描画
冬のシーズンにちょっとしたプログラムで楽しみたいという時にも str_pad は役立ちます。以下のコードでクリスマスツリーを描いてみましょう。
for ($i = 1; $i <= 5; $i++) {
echo str_pad(str_repeat("*", $i * 2 - 1), 9, " ", STR_PAD_BOTH) . "\n";
}
まとめ
str_pad 関数は、PHPで文字列を特定の長さに調整する際に非常に便利です。方向や埋める文字も自由に選べ、実用的な場面でも多くの用途があります。この関数をうまく使いこなせば、プログラムの見た目や出力データをより整えられるでしょう。