PHPのstr_pad関数で特定の長さになるまで文字列を埋める方法

プログラミングにおいて、特定の長さになるまで文字列を埋めたいというケースは少なくありません。特にテーブル表示やテキストの整形、データのエクスポートなどでよく見られます。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で文字列を特定の長さに調整する際に非常に便利です。方向や埋める文字も自由に選べ、実用的な場面でも多くの用途があります。この関数をうまく使いこなせば、プログラムの見た目や出力データをより整えられるでしょう。