Вы можете использовать preg_match
для выполнения этого:
$name = 'Chicago-Illinos10';
preg_match('/(.*?)(\d+)$/', $name, $match);
$base = $match[1];
$num = $match[2]+1;
print $base.$num;
Будет выведено следующее:
Chicago-Illinos11
Однако, если это возможно, я бы предложил разместить еще один символ-разделительмежду текстом и номером.Например, если вы разместили канал, вы могли бы просто сделать explode
и захватить вторую часть массива.Это было бы намного проще.
$name = 'Chicago-Illinos|1';
$parts = explode('|', $name);
print $parts[0].($parts[1]+1);
Если длина строки имеет значение (например, неправильная орфография Иллинойса), вы можете переключиться на сокращение штата.(т.е. Chicago-IL|1
)