所以我一直试图让这些代码全天工作,并且无法做到这一点......我希望能够用一个数字替换字母(或者只是一个值来自数组。这是我得到的代码:
$l2n =
array(
'a'=>'1',
'b'=>'2',
'c'=>'3',
'd'=>'4',
'e'=>'5',
'f'=>6,
'g'=>7,
'h'=>8,
'i'=>9,
'j'=>10,
'k'=>11,
'l'=>12,
'm'=>13,
'n'=>14,
'o'=>15,
'p'=>16,
'q'=>17,
'r'=>18,
's'=>19,
't'=>20,
'u'=>21,
'v'=>22,
'w'=>23,
'x'=>24,
'y'=>25,
'z'=>16
);
$string = str_split($string);
$explode = array_shift($string);
if($l2n[$explode] == $explode)
{
echo $l2n[$explode];
}
else
{
echo $l2n['a'];
}
我尝试使用Preg_replace,但我从来没有对该功能进行过良好的尝试。所以,如果有人能帮助我,那就提示我正确的方向,那就太棒了。
答案 0 :(得分:2)
您可以在使用str_replace
和array_keys
后使用array_values
来获取数组的每一面:
$keys = array_keys($l2n);
$values = array_values($l2n);
$yourstring = 'Hello world!';
echo str_replace($keys, $values, $yourstring);
// H5121215 231518124!
文档:
答案 1 :(得分:1)
您可以这样做:
$string = preg_replace(array_keys($l2n), array_values($l2n), $string);
如果模式和替换参数都是数组,则每个模式将替换为替换模式。
答案 2 :(得分:0)
为什么世界上会使用数组呢?不是ord()你在寻找什么?
$string = "ABCDE";
foreach ( str_split($string) as $chr ) {
echo ord($chr) - 64; // or 97 if they all are lowercase
echo PHP_EOL;
}