php 替换字符串中的数字

来源:百度知道 编辑:UC知道 时间:2024/06/08 06:57:46
<?php
function n2n($input) {
$s=array('1','2','3','4','5','6','7','8','9','0');
$r=array("7","8","9","0","1","2","3","4","5","6");
$result = str_replace($s, $r, $input);
return $result;
}

$str="1234abc56";
echo n2n($str);

?>

为什么出错,有其它方法吗

这个密码的的问题是:你的$str="1234abc56"最初的时候1是被替换成7了,但是在后面的检查候总,你的7又被替换成3了。因为你的$s,$r的关系
这是我修改后的,比较复杂点,但是可以用。
我的思想是:将输入字符串分离,一个一个进行查询替换。
<?php
function n2n($input) {
$s=array('1','2','3','4','5','6','7','8','9','0');
$r=array("7","8","9","0","1","2","3","4","5","6");
$length=strlen($input);
for($i=0;$i<$length;$i++){
for($j=0;$j<10;$j++)
if($s[$j]==$input[$i]){
$input[$i]= str_replace($s[$j], $r[$j], $input[$i]);
break;
}
}
return $input;
}

$str="1234abc56";
echo n2n($str);

?>