使用PHP将数字转换为字母

3

我将多项选择题的答案以1 2 3 4的数字形式存储在MySQL数据库中,

但我想在网页上以a b c d的字母形式展示它们。

我使用PHP,如何使用PHP将数字转换为字母?

echo "
<h2>question</h2>
<p>".$row[0]."</p>
<h2>answer</h2>
<p>".$row[1]."</p>"; 

row[1]现在是{1,2,3,4},我希望将其转换为{A,B,C,D}

请问有人能看一下并告诉我如何做吗?


2
你目前尝试了什么?(提示:chr、数组查找或简单的str_replace都可以解决问题。) - John Parker
1
不确定我是否理解了。$letters = str_replace(array(1,2,3,4), array("a", "b", "c", "d"), $numbers); - m1k1o
4个回答

39

非常容易:

<?php
$row = array(1, 2, 3, 4);

echo "
<h2>question</h2>
<p>".chr(64 + $row[0])."</p>
<h2>answer</h2>
<p>".chr(64 + $row[1])."</p>";

测试一下:http://3v4l.org/uojsK


3
必须检查此项作为正确答案。 - NBPalomino
5
字符编码65代表大写字母A,如果你在寻找小写字母a的话,需要使用97作为起点。 - Andreas

12

你可以先定义一个数组:

$letters = array_combine(range(1,26), range('a', 'z'));
//now just use:
echo $letters[$row[1]]; 

2
创建字母数组,并使用数字通过索引(num-1)获取正确的字母。
$letters = range('a','z');
$num = 3;
var_dump($letters[$num-1]);//"c"

即 (i.e.)
$letters = range('a','z');
echo "
<h2>question</h2>
<p>".$letters[$row[0]-1]."</p>
<h2>answer</h2>
<p>".$letters[$row[1]-1]."</p>";

1
<?php
///  the $row is the array you can get from db
$row = array(1,2,3,4,5);
// Here you can add your option up-to z
$alpha = range('A','E');
$i = 0;
///  Instead of foreach loop you can run while loop
foreach($row as $rows){
echo $alpha[($row[$i]-1)].'<br/>'; 
$i++;
}
?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接