6

文字列があり、その内容は「24896」です。ここで、左側にゼロをいくつか追加したいので、試しました:

$test = str_pad($myString, 4, "0", STR_PAD_LEFT);

結果は再び「24896」となり、左側にゼロは追加されません。ここで何か不足していますか?

ありがとう!

4

6 に答える 6

13

の 2 番目の引数str_pad()は、最終的な文字列の完全な長さを取ります。4 を渡し、 の長さ$myStringが 5 であるため、何も起こりません。

例の値より少なくとも 1 大きい幅を選択する必要があります。たとえば、次のようになります。

str_pad($myString, 9, '0', STR_PAD_LEFT);
// "000024896"

アップデート

これは明らかかもしれませんが、何かの前に常に4つのゼロが必要な場合$myString:

'0000' . $myString;
于 2013-02-04T14:46:47.837 に答える
2

長さ 4 にパディングしていて、文字列の長さ24896が 5 文字であるため、すでに 4 文字を超えているため、何もパディングする必要はありません。

関数の 2 番目のパラメーターはstr_pad、文字列の新しい長さです。

于 2013-02-04T14:46:51.543 に答える
2

試す

$myString = "24896" ;
$test = str_pad($myString, strlen($myString) + 4, "0", STR_PAD_LEFT);
echo $test;

出力

000024896
于 2013-02-04T14:47:18.063 に答える
0

何個のゼロを追加しますか? パディングの長さが指定された $myString の長さよりも小さいため、ゼロは追加されません。

これをお試し下さい

$number = 24896; 
$number = sprintf('%06d', $number); 
echo $number;

またはこれを使用します

$number = 24896;
$number = str_pad($number, 6, '0', STR_PAD_LEFT);//here 6 is padding length
echo $number;

出力

024896
于 2016-02-03T06:46:09.283 に答える
0

str_function で指定した長さが入力文字列よりも短くなっています ドキュメントを正しく読んでください これはうまくいくでしょう

あなたの文字列は 5 文字です。例: $myString=24896; ここで、左に 5 個のゼロを追加します

次に、長さは文字列 + 5 になり、実際は 5+5=10 になります。

これを関数に渡すと、関数は次のようになります

$test = str_pad($myString, 10, "0", STR_PAD_LEFT);

エコー $ テスト;

出力: 0000024896

于 2014-12-09T05:57:42.997 に答える