是否可以用整数表示字符


Is it possible to represent characters with integers?

$rowgp="select name,m3,dpsd,phc,jtk from 2sem3 where rno='$rno'";
$resultrow=mysql_query($rowgp);
while($row=mysql_fetch_array($resultrow)){
   echo  $row['m3'] ." ". $row['oops'];
   $one = $row['m3'];
   $two = $row['oops']
}

在上面的代码中,变量$one包含一个从 a 到 d 的字符(这些是字段 m3 中存在的字符)。如果字符是"a",则应将其视为 1;如果为"b",则为 2(c=3,d=4,依此类推)。如何在不使用 if 或 switch 语句的情况下做到这一点?

$chars = range('a', 'z');
$nums = array_flip($chars);
echo $nums[$one] + 1;

可以使用 ord()

echo (ord($row['m3']) - ord('a') + 1);
$lookup = array('a'=>1, 'b'=>2, 'c'=>3, 'd'=>4);
$rowgp="select name,m3,dpsd,phc,jtk from 2sem3 where rno='$rno'";
$resultrow=mysql_query($rowgp);
while($row=mysql_fetch_array($resultrow)){
echo  $row['m3'] ." ". $row['oops'];
$one = $lookup[$row['m3']];
$two = $row['oops']
}