sprintf関数とprintf関数の使い方

sprintf関数は引数で指定した値を指定の形式にフォーマットした文字列を返します。第一引数にフォーマット形式、第二引数以降に変換前の値(文字列や数値)を指定します。変換する値が複数ある場合は第二引数以降、順番に指定します。

sprintf('フォーマット形式', 変換前の値, 変換前の値, …);

第一引数のフォーマット形式の主な型指定子は以下になります。

%s:引数を文字列として扱います。
%d:引数を整数として扱います。
%0(桁数)d:引数を整数として扱い、整数の左側に桁数に対応した0を埋めます。

第一引数の型指定子の順番は、第二引数以降の変換前の値の順番と対応しています。

<?php
$format = '%sと%sを%d個収穫しました。<br>';
echo sprintf($format, 'トマト', 'キャベツ', 7);
echo sprintf($format, 'ピーマン', 'レタス', 10);
?>

実行結果は以下になります。

トマトとキャベツを7個収穫しました。
ピーマンとレタスを10個収穫しました。

次に0埋め用の型指定子を使用します。

<?php
$items = array('トマト','キャベツ','ピーマン','レタス');

foreach ($items as $key => $value){
  echo 'key:#' .sprintf('%02d', $key + 1). '、value:' .$value. '<br>';
}
?>

実行結果は以下になります。

key:#01、value:トマト
key:#02、value:キャベツ
key:#03、value:ピーマン
key:#04、value:レタス

なお、sprintf関数が指定の形式にフォーマットした文字列を返すのに対し、printf関数は指定の形式にフォーマットした文字列を出力します。echoで出力する必要はありません。

<?php
$format = '%sと%sを%d個収穫しました。<br>';
printf($format, 'トマト', 'キャベツ', 7);
printf($format, 'ピーマン', 'レタス', 10);
?>

実行結果は以下になります。

トマトとキャベツを7個収穫しました。
ピーマンとレタスを10個収穫しました。
タイトルとURLをコピーしました