我有一个我自己无法解决的小问题,我正在比较两个相同的字符串,一个来自数据库,另一个来自文本文件,除了最后一个之外,值总是相等的文本文件中的数组代码while (!feof($monfichier)) { $line = fgets($monfichier); $pieces = explode(" ", $line); $factureAgent[$nbb][0] = $pieces[0]; //id client $factureAgent[$nbb][1] = $pieces[1]; //consommation annuelle $factureAgent[$nbb][2] = $pieces[2]; //année $factureAgent[$nbb][3] = $pieces[3]; //id agent $month = explode(":", $pieces[4]); $factureAgent[$nbb][4] = $month[1]; //janvier $month = explode(":", $pieces[5]); $factureAgent[$nbb][5] = $month[1]; //fevrier $month = explode(":", $pieces[6]); $factureAgent[$nbb][6] = $month[1]; //mars $month = explode(":", $pieces[7]); $factureAgent[$nbb][7] = $month[1]; //avril $month = explode(":", $pieces[8]); $factureAgent[$nbb][8] = $month[1]; //mai $month = explode(":", $pieces[9]); $factureAgent[$nbb][9] = $month[1]; //juin $month = explode(":", $pieces[10]); $factureAgent[$nbb][10] = $month[1]; //juillet $month = explode(":", $pieces[11]); $factureAgent[$nbb][11] = $month[1]; //aout $month = explode(":", $pieces[12]); $factureAgent[$nbb][12] = $month[1]; //septembre $month = explode(":", $pieces[13]); $factureAgent[$nbb][13] = $month[1]; //octobre $month = explode(":", $pieces[14]); $factureAgent[$nbb][14] = $month[1]; //novembre $month = explode(":", $pieces[15]); $factureAgent[$nbb][15] = $month[1]; //decembre $nbb++;}这是代码echo "<br>".$row[0]."is".$factureAgent[$i][$nb]."<br>";if ($année==$annéeComp[0]) { if ($row[0]!=$factureAgent[$i][$nb]) { echo "<br>".$row[0]."is".$factureAgent[$i][$nb]."<br>"; $ok = false; } $nb++; $nbr++;}输出25is2550is5087is87115is115200is200250is250400is400550is500600is600650is650800is800950is950950is950看图片我正在从文本文件中读取的行1 2000 2019 1 01:25 02:50 03:87 04:115 05:200 06:250 07:400 08:550 09:600 10:650 11:800 12:95013 2000 2019 1 01:45 02:90 03:150 04:300 05:600 06:800 07:1000 08:1300 09:1450 10:1600 11:1800 12:2000看图片
2 回答
幕布斯7119047
TA贡献1794条经验 获得超8个赞
比较来自不同来源的字符串可能会导致意外结果。
您可以做的一件事是将您的值转换为相同的类型,然后进行比较。例如:
if (intval('1') === intval('01')) ...
这样你就可以得到整数的两侧,它只是一个整数比较。
请注意,如果您转换一个非数字的值,该函数将始终返回 0
炎炎设计
TA贡献1808条经验 获得超4个赞
那可能是您使用==
而不是===
. 如果您不想考虑案例,我可能会建议使用strcasecmp
,或者strcmp
如果您希望考虑案例,我可能会建议使用。
注意将这些函数的结果与 0 进行比较,===
以确保它们相等,例如: if (strcmp('Hello, 'Hello') === 0) ...
使用时要注意==
和===
(1 == '1') //Equal -- not taking into consideration the type but just the value
(1 === '1') //Not equal -- taking into consideration the type and the value
仅供您参考,不供您使用!=
或!==
- 2 回答
- 0 关注
- 148 浏览
添加回答
举报
0/150
提交
取消