简体   繁体   中英

Alphanumeric string increment using for loop

I have a two variable one is string contains number and another one is number, I want increase the numeric part of string upto second number.

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

I want output like:

sh500
sh501
sh502

Use $n++ where $n = 'sh500' . It works.

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

Will output

sh500 <br>
sh501 <br>
sh502 <br>

It even works when ending with a alphanumeric character, because php converts it to the ASCII value of the character and adds one so a will become b and so on. But that's out of the scope of the question :)

$x="sh500";
$x = substr($x,0,2) . (substr($x,2) + 1);

echo $x;

echoes sh501 (works for any string having a number from 3rd character)

$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>";
}

it echo: 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";
}

Live demo: Here

$x = "sh500";
$s = substr($x, 0, 2);
$n = substr($x, 2);

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

OR another simple way is...

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

Output

sh500
sh501
sh502

if it is always a string of length 2 else use preg_match to find the first occurrence of a number. http://www.php.net/manual/en/function.preg-match.php

$number = intval(substr($n, 2));
$number++;

echo substr($n, 0, 2) . $number;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM