У меня есть две переменные: строка содержит число, а другая – номер, я хочу увеличить числовую строку строки до второго числа.
$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