我想检查数组和字符串之间的数据是否匹配。 我试图检查字符串是否彼此相等,但问题是条件返回 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";
}
正如评论中提到的。一个值前面有一个空格。您可以这样解决此类问题:
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";
}
这个测试效果很好
$subdat = "IT100";
$subex2[1] = "IT100";
if($subdat == $subex2[1]) {
echo "Data matched";
}
您没有比较相同的字符串
首先使用 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
试试这个:
$isMatched = strval($subex2[1]) === strval($subdat) ?: false;