2

有人可以帮我创建一个函数来将整数转换为 PHP 中的字符,如下所示:

'A' => 0,
'B' => 1,
'C' => 2,
'D' => 3,
'E' => 4,
'F' => 5,
'G' => 6,
'H' => 7,
'I' => 8,
'J' => 9

如果数字是 100,那么它应该生成 BAA。

A、B、C……只是一个例子。我正在尝试用代码加密数字。

我需要这个来处理一些像这样的词

0 => zero
1 => one

ETC

但是当我给数字 10 时,它应该输出onezero.

提前致谢

4

7 回答 7

14

像这样简单尝试

    $letter = chr($i+65);
    echo $letter;

给出'A'

于 2013-04-24T13:18:14.053 回答
1

这可能对您有用:

$numarr=array('A' => 0, 'B' => 1, 'C' => 2);
$narr = array_flip($numarr);

$num = 100;
$arr = str_split($num);

$str = '';
foreach($arr as $s)
   $str .= $narr[$s];
echo $str . "\n"; //BAA

现场演示:http: //ideone.com/3XqoZ7

于 2013-04-24T13:18:19.383 回答
1
<?php
$list=array('A' => 0,
'B' => 1,
'C' => 2,
'D' => 3,
'E' => 4,
'F' => 5,
'G' => 6,
'H' => 7,
'I' => 8,
'J' => 9);
 $num=1234; //your value
 $temp='';
 $arr_num=str_split ($num);
foreach($arr_num as $data)
{
$temp.=array_search($data,$list);
}
$num=$temp;
echo $num; // here we get BCDE
?>
于 2013-04-24T13:29:39.797 回答
1
<?php
$number = 100;
$len = strlen($number);
for($i=0;$i<$len;$i++) {
    echo printAlphabet(substr($number,$i,1));
}
function printAlphabet($pos) {
    $letter = chr($pos+65);
    return $letter;
}
?>
于 2013-04-24T13:37:02.023 回答
0

如果我正确理解你想要做什么,有一个函数可以返回字母在字母表中的位置,你可以这样做:

<?php
    function chartonumber($char) {
        return ord(strtolower($char)) - 96;
    }
    echo chartonumber('A')."\n";
    echo chartonumber('b')."\n";
    echo chartonumber('E')."\n";
?>

这将打印:

1
2
5

分别是字母A、b、E的位置。

它是如何工作的: - 它确保使字母小写。- 它将其转换为 ascii int。- 减去前面的 96 个 ascii 表字符。

玩得开心 :)

于 2013-04-24T13:22:22.337 回答
0

我创建了一个抽象函数:

    private function getCoordinates($row, $col){
            $letter = $this->getLetter($col);
            return $letter.$row;
    }

    private function getLetter($col){
            // 64+1 = 65 ==>> "A"
            $letter = '';
            if ($col<=26){
                    $letter = chr(64+$col);
            } else {
                    $newCol = intdiv($col, 26);
                    $resCol = ($col % 26);
                    $letter = $this->getLetter($newCol).chr(64+$resCol);
            }
            return $letter;
    }

TEST:
la letra para fila:7 y columna:1 es : A7
la letra para fila:7 y columna:26 es : Z7
la letra para fila:7 y columna:27 es : AA7
la letra para fila:7 y columna:23455756 es : AYHMVL7
于 2019-02-18T18:19:16.193 回答
-2
<?php
$stack = array("A", "B");
array_push($stack, "C", "D", "E", "F", "G", "H","I","J");
print_r($stack);
?>
于 2013-04-24T13:21:00.473 回答