替换最后x个数字

时间:2010-12-12 00:52:41

标签: php

我有一个看起来像这样的PHP变量:

$id = "01922312";

我需要用另一个字符替换最后两个或三个数字。我怎么能这样做呢?

编辑很抱歉这个混乱,基本上我有上面的变量,在我完成处理之后,我希望它看起来像这样:

$new = "01922xxx";

5 个答案:

答案 0 :(得分:33)

试试这个:

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

结果:

01922xxx

答案 1 :(得分:15)

您可以使用substr_replace替换子字符串。

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

参考:

http://php.net/substr-replace

答案 2 :(得分:2)

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

用法:

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

在此处查看此行动:http://codepad.org/XGyVQ1hk

答案 3 :(得分:2)

字符串可以视为数组,字符是键:

$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';

希望这有帮助!

答案 4 :(得分:1)

只需转换为字符串并替换...

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