PHP中的字符串编码为a = 1,b = 2,依此类推

时间:2015-05-18 10:17:51

标签: php

我想创建PHP函数来编码任何字符串,只需遵循以下规则。

  

A = 1; B = 2; C = 3; ..... Y = 25; Z = 26;

例如。    如果我的字符串是" abc "那么我的编码数据将是" 123 "。

我们可以使用$key=>$value数组但是它会为每个字母迭代26次!!

4 个答案:

答案 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是转换器数组中的项目数,与原始字符串维度无关。