PHP检测和替换
您能告诉我如何从字符串中检测int,然后用一个值替换每个int吗? 例如,我在数据库中有一个“1;5;81;2”,我想用一个特定的值替换每个数字,例如,我想得到一个结果“obzq”PHP检测和替换,php,Php,您能告诉我如何从字符串中检测int,然后用一个值替换每个int吗? 例如,我在数据库中有一个“1;5;81;2”,我想用一个特定的值替换每个数字,例如,我想得到一个结果“obzq” 有办法做到这一点吗?谢谢创建一个包含键值对的数组,其中键是数字,值是对应的字母。然后在字符串上使用php函数explode()和数字,并在数组中循环使用相应的字母替换数字 例如: $numberLetterArray = array( 1 => 'o', 2 => 'q', 5 =
有办法做到这一点吗?谢谢创建一个包含键值对的数组,其中键是数字,值是对应的字母。然后在字符串上使用php函数explode()和数字,并在数组中循环使用相应的字母替换数字 例如:
$numberLetterArray = array(
1 => 'o',
2 => 'q',
5 => 'b',
81 => 'z',
);
$string = '1;5;81;2';
// Creates an array of only the numbers
$numbers = explode(';', $string);
foreach($numbers as $n)
{
foreach($numberLetterArray as $number=>$letter)
{
if($number == $n)
{
$output .= $letter.' ';
}
}
}
// Remove the space at the end
$output = trim($output);
它应该输出“obzq”。使用
strtr
函数尝试了几乎所有的方法,问题是int的数量不准确,并且没有定义模式。。看到了吗?我试过了,但问题是它并不总是1 2 5 81和o q b z你在哪里引用字母和数字之间的关系?数字是ID,字母是每个idOk对应的用户名,所以概念还是一样的,但是,与通过$numberLetterArray循环的foreach循环不同,您将有一个通过数据库结果循环的循环。因为您为已知int指定了值,这使得它对于我给出的示例是特定的,但对于其他情况则不是。