Замена последнего количества чисел

У меня есть переменная PHP, которая выглядит примерно так:

$id = "01922312";

Мне нужно заменить последние два или три числа другим символом. Как я могу это сделать?

EDIT Извините за путаницу, в основном у меня есть переменная выше, и после того, как я закончил ее обработку, я бы хотел, чтобы она выглядела примерно так:

$new = "01922xxx";

Ответ 1

Попробуйте следующее:

$new = substr($id, 0, -3) . 'xxx';

Результат:

01922xxx

Ответ 2

Вы можете использовать substr_replace для замены подстроки.

$id = substr_replace($id, 'xxx', -3);

Ссылка:

http://php.net/substr-replace

Ответ 3

function replaceCharsInNumber($num, $chars) {
   return substr((string) $num, 0, -strlen($chars)) . $chars;
}

Использование:

$number = 5069695;
echo replaceCharsInNumber($number, 'xxx'); //5069xxx

Смотрите здесь: http://codepad.org/XGyVQ1hk

Ответ 4

Строки можно рассматривать как массивы, причем символами являются ключи:

$id = 1922312; // PHP converts 01922312 => 1 because of that leading zero. Either make it a string or remove the zero.
$id_str = strval($id);

for ($i = 0; $i < count($id_str); $i++)
{
  print($id_str[$i]);
}

Это должно выводить исходный номер. Теперь, чтобы делать с ним вещи, рассматривайте его как обычный массив:

$id_str[count($id_str) - 1] = 'x';
$id_str[count($id_str) - 2] = 'y';
$id_str[count($id_str) - 3] = 'z';

Надеюсь, это поможет!

Ответ 5

Просто конвертируйте в строку и замените...

$stringId = $id . '';
$stringId = substr($id, 0, -2) . 'XX';