有人可以帮我创建一个函数,用于将整数转换为PHP中的字符,如下所示:
'A' => 0,
'B' => 1,
'C' => 2,
'D' => 3,
'E' => 4,
'F' => 5,
'G' => 6,
'H' => 7,
'I' => 8,
'J' => 9
如果number为100,那么它应该生成BAA。
A,B,C ......只是一个例子。我试图用代码加密数字。
我需要这个来处理像
这样的词0 => zero
1 => one
等
但是当我给出数字10时,它应该输出onezero
。
提前致谢
答案 0 :(得分:7)
像这样简单尝试
$letter = chr($i+65);
echo $letter;
给出'A'
答案 1 :(得分: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
答案 2 :(得分: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
?>
答案 3 :(得分: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;
}
?>
答案 4 :(得分: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表字符。
玩得开心:)
答案 5 :(得分: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
答案 6 :(得分:-2)
<?php
$stack = array("A", "B");
array_push($stack, "C", "D", "E", "F", "G", "H","I","J");
print_r($stack);
?>