str_replace的怪异行为

问题描述 投票:0回答:1

我正在尝试将每个A-Z,a-z字符替换为其索引中的第13个字符。上面的代码应输出Aqeai4pyh_w

echo 'j_ulc4vnrdN
';

$string = "j_ulc4vnrdN";

$arr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
$arr2 = 'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm';

$l = array();
$arr1 = str_split($arr);
$arr22 = str_split($arr2);
print_r($arr1); 
print_r($arr22); 
foreach(str_split($string) as $k){
    echo $k.'
      ';
    $k = str_replace($arr1,$arr22,$k);



    echo $k.'
      ';
    $l[] = $k;
    //  print_r($l);
}

echo  strrev(implode('',$l));

但是它输出Adeai4clh_j任何人都不知道这是怎么回事?

php string str-replace
1个回答
0
投票

[使用strtr()的方法要简单得多,您给它一个开始字符串,然后更改一组翻译即可...

strtr()

这会给你...

$string = "j_ulc4vnrdN";

$arr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
$arr2 = 'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm';

$string = strtr($string,$arr,$arr2);

echo  strrev($string);
© www.soinside.com 2019 - 2024. All rights reserved.