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 に答える