Алфавитно-цифровое приращение строки, используемое для цикла

У меня есть две переменные: строка содержит число, а другая – номер, я хочу увеличить числовую строку строки до второго числа.

$n ='sh500'; $c = 3; for($i=$n;$i<$c;$i++) echo $i.'<br>'; 

Мне нужен вывод:

 sh500 sh501 sh502 

Related of "Алфавитно-цифровое приращение строки, используемое для цикла"

Используйте $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