У меня есть две переменные: строка содержит число, а другая – номер, я хочу увеличить числовую строку строки до второго числа.
$n ='sh500'; $c = 3; for($i=$n;$i<$c;$i++) echo $i.'<br>';
Мне нужен вывод:
sh500 sh501 sh502
Используйте $n++
где $n = 'sh500'
. Оно работает.
$n ='sh500'; $c = 3; for($i = 0;$i < $c;$i++) { echo $n++.'<br>'; }
Выйдет
sh500 <br> sh501 <br> sh502 <br>
Он даже работает, когда заканчивается буквенно-цифровым символом, потому что php преобразует его в значение ASCII символа и добавляет его так, что a
станет b
и так далее. Но это выходит за рамки вопроса 🙂
$x="sh500"; $x = substr($x,0,2) . (substr($x,2) + 1); echo $x;
sh501
(работает для любой строки, имеющей номер из 3-го символа)
$n = 'sh'; for($i = 500; $i < 503; $i++) { echo "$n$i\n"; }
$n="sh50"; for($i=0;$i<10;$i++){ $j=$n.$i; echo $j."<br>"; }
это эхо: sh500 sh501 sh502 sh503 sh504 sh505 sh506 sh507 sh508 sh509
$n = 'sh500'; $c = 3; $sh = substr($n,0,2); // will be "sh" $number = substr($n,2,5) + 1; // will be "500" for($i = $number; $i < 504; $i++) { echo $sh.$i."\n"; }
Демо-версия: здесь
если он всегда является строкой длины 2, используйте preg_match, чтобы найти первое вхождение числа. http://www.php.net/manual/en/function.preg-match.php
$number = intval(substr($n, 2)); $number++; echo substr($n, 0, 2) . $number;
$x = "sh500"; $s = substr($x, 0, 2); $n = substr($x, 2); $c = 3; for ($i = $n; $i < ($n + $c); $i++) { echo $s.$i.'<br>'; }
ИЛИ другой простой способ …
$n ='sh500'; $c = 3; for ($i = 0; $i < $c; $i++) { echo $n++."<br>"; }
Вывод
sh500 sh501 sh502