web-dev-qa-db-ja.com

PHP 1桁の数字の前に、先頭にゼロを先頭に付ける

PHP - 1文字の文字列をテストしてから先頭にゼロを付ける簡単な方法はありますか?

例:

$year = 11;
$month = 4;

$stamp = $year.add_single_zero_if_needed($month);  // Imaginary function

echo $stamp; // 1104
186
Ben

あなたはsprintfを使用することができます: http://php.net/manual/en/function.sprintf.php

<?php
$num = 4;
$num_padded = sprintf("%02d", $num);
echo $num_padded; // returns 04
?>

必要な文字数より少ない場合にのみゼロを追加します。

編集:@FelipeAlsが指摘するように:

数値を扱うときは、特に負の数が発生する可能性があるときは、(%dではなく)%sを使用する必要があります。正数のみを使用している場合は、どちらの方法でもうまくいきます。

例えば:

sprintf("%04s", 10);は0010を返します
sprintf("%04s", -10);は0〜10を返します

どこに:

sprintf("%04d", 10);は0010を返します
sprintf("%04d", -10);は-010を返します

426
Kirk Beard

0を追加するために str_pad を使うことができます

str_pad($month, 2, '0', STR_PAD_LEFT); 

string str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )

168
Gaurav

文字列フォーマット用の万能ツールsprintf

$stamp = sprintf('%s%02s', $year, $month);

http://php.net/manual/en/function.sprintf.php

16
deceze