teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2017/04/21 00:14

投稿

ttyp03
ttyp03

スコア17002

answer CHANGED
@@ -2,4 +2,19 @@
2
2
  ```PHP
3
3
  $str = "00123";
4
4
  $str = sprintf("%05d", intval($str) + 1);
5
+ ```
6
+
7
+ 元の文字列の長さに自動で合わせるなら、こうでしょうか。
8
+ ```PHP
9
+ $str = sprintf("%0".strlen($str)."d", intval($str) + 1);
10
+ ```
11
+ って書くとstrlenのところが明示的じゃなく、最初の回答と矛盾するのでつっこまれそう…。
12
+ ちゃんと書くと長くなりますな。
13
+ ```PHP
14
+ $str = sprintf("%0".strval(strlen($str))."d", intval($str) + 1);
15
+ ```
16
+ もしくはこうか。
17
+ ```PHP
18
+ $str = sprintf(sprintf("%%0%dd",strlen($str)), intval($str) + 1);
19
+
5
20
  ```