0
$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)。如果 char 为 'a',则应为 1;如果 'b' 则为 2(c=3,d=4,依此类推)。如果不使用 if 或 switch 语句,我怎么能做到这一点?

4

3 回答 3

6
$chars = range('a', 'z');
$nums = array_flip($chars);
echo $nums[$one] + 1;
于 2012-08-14T20:38:42.337 回答
3

可以使用ord()

echo (ord($row['m3']) - ord('a') + 1);
于 2012-08-14T20:41:27.420 回答
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']
}
于 2012-08-14T20:38:49.123 回答