我想创建PHP函数来编码任何字符串,只需遵循以下规则。
A = 1; B = 2; C = 3; ..... Y = 25; Z = 26;
例如。 如果我的字符串是" abc "那么我的编码数据将是" 123 "。
我们可以使用$key=>$value
数组但是它会为每个字母迭代26次!!
答案 0 :(得分:1)
使用一些分隔符,以便您可以识别单独的字符。你可以试试这个。
$chars = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
$str = "acd";
$encoded = array();
for ($i = 0; $i < strlen($str); $i++) {
$encoded[] = $chars[$str[$i]];
}
echo implode('|', $encoded);
<强>输出强>
1|3|4
答案 1 :(得分:1)
function encodedString($your_string)
$alpha_arr = range("A", "Z");
$your_string = strtoupper($your_string);
$encoded = "";
for($i=0; $i<strlen($your_string); $i++)
{
$strOne = substr($your_string, $i, 1);
if (in_array($strOne, $alpha_arr))
{
$encoded .= array_search($strOne, $alpha_arr)+1;
}
}
return $encoded;
}
答案 2 :(得分:0)
ord()
方法输出ascii值。现在您可以根据文本大小写减去64和96以获取相应的值。您将不需要迭代或循环或任何东西。使用更改案例函数并获取ascii值。减去常数。
有关 ord 方法here
的更多详细信息答案 3 :(得分:0)
您应该使用填充的编码编号以避免混淆,使用如下数组:
$converter = array('a' => '01', 'b' => '02' ...);
然后遍历原始字符串的每个字母,并构造您的编码字符串,按键访问$ converter数组(&#39; a&#39;,&#39; b&#39; ...&#39; z& #39;)
您还可以使用str_replace循环转换器数组并替换每个字符。使用str_replace,您最多只能进行N次迭代,其中N是转换器数组中的项目数,与原始字符串维度无关。