有如下语句:
if($row['sex'] == '男') {
$gender = 1;
}else{
$gender = 2;
}echo $gender;$row[]是数据库查询中的一条数据。
现在这条结果中的$row['sex']是“男”,但输出的结果$gender是2,也就是if($row['sex'] == '男') 这个条件根本没有匹配成功。
但是我直接输出$row['sex'],输出的确实是“男”,而且前后都没有空格。后来我又用正则匹配,preg_match('/男/', $row['sex'], $match); 然后var_dump($martch);  输出的结果也是array(0){}怎样匹配中文呢??

解决方案 »

  1.   

    没有的事。
    <?php
    $row =array('name'=>'alisss','sex'=>'男');
    if($row['sex'] == '男') {
    $gender = 1;
    }else{
    $gender = 2;
    }echo $gender;//1
      

  2.   

    贴出你取row数组的代码,估计是错了。
      

  3.   

    编码或者空格造成的不匹配.if (trim($row['sex'])=='男'){
    $gender=1;
    }else{
    $gender=2;
    }
    echo $gender;
      

  4.   


    这样写肯定没问题啊我这是从数据库里提的数据,我估计就是编码的问题~
    我直接输出$row['sex'],就是“男”