比较字符串,无论前导空格或尾随空格如何

问题描述 投票:0回答:4

我想检查数组和字符串之间的数据是否匹配。 我试图检查字符串是否彼此相等,但问题是条件返回 false 并且

$subex2[1]
$subdat
的值都是
IT100
。我认为问题是你无法将数组与字符串进行比较。有人可以帮我解决这个问题吗?

这是代码

$subex = $objPHPExcel->getActiveSheet()->getCell('D8')->getValue();
$subex2 = explode(":", $subex);

$q = "select * from class where id='$id'";
$r = mysql_query($q);
$data = mysql_fetch_array($r);
$subdat = $data['subject'];

if ($subdat == $subex2[1]) {
    echo "Data matched";
} else {
    echo "Data doesn't matched";
}
php string-comparison
4个回答
1
投票

正如评论中提到的。一个值前面有一个空格。您可以这样解决此类问题:

if(trim($subdat) == trim($subex2[1])) {
    echo "Data matched";
} else {
    echo "Data doesn't matched";
}

对于区分大小写的问题,应该应用此技巧。

if(strtolower(trim($subdat)) == strtolower(trim($subex2[1]))) {
        echo "Data matched";
    } else {
        echo "Data doesn't matched";
    }

0
投票

这个测试效果很好

 $subdat = "IT100";
 $subex2[1] = "IT100";


  if($subdat == $subex2[1]) {
        echo "Data matched";

   }

您没有比较相同的字符串


0
投票

首先使用 array_map 并修剪值,删除空间,然后使用 in_array,示例

$subex2 = array_map('trim',$subex2);

if( is_array($subex2) ){
     if(in_array($subdata, $subex2)){
         echo "Data matched";
      } else {
         echo "Data doesn't matched";
     }
 }

检查它是否实际上是一个数组总是好的,使用

is_array

参考

in_array
https://www.w3schools.com/php/func_array_in_array.asp


0
投票

试试这个:

$isMatched = strval($subex2[1]) === strval($subdat) ?: false;
© www.soinside.com 2019 - 2024. All rights reserved.