两个字符串相同,但比较时不相等
two strings identical, but not equal when compared
我有一个我自己无法解决的小问题,我正在比较两个完全相同的字符串,一个从数据库中获取,另一个从文本文件中获取,除最后一个外,值始终相等一个
来自文本文件的数组代码
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++;
}
输出
25is25
50is50
87is87
115is115
200is200
250is250
400is400
550is500
600is600
650is650
800is800
950is950
950is950
see image
我正在从文本文件中读取行
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:950
13 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
see image
那可能是您使用的是 ==
而不是 ===
。
如果您不想考虑这种情况,我可能建议使用 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
仅供参考,您未使用 !=
或 !==
比较不同来源的字符串可能会导致意外结果。
您可以做的一件事是将您的值转换为相同的类型,然后进行比较。
例如:
if (intval('1') === intval('01')) ...
这样你就得到整数的两侧,它只是一个整数比较。
请注意,如果您输入一个非数字值,该函数将始终 return 0
我有一个我自己无法解决的小问题,我正在比较两个完全相同的字符串,一个从数据库中获取,另一个从文本文件中获取,除最后一个外,值始终相等一个
来自文本文件的数组代码
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++;
}
输出
25is25
50is50
87is87
115is115
200is200
250is250
400is400
550is500
600is600
650is650
800is800
950is950
950is950
see image
我正在从文本文件中读取行
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:950
13 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
see image
那可能是您使用的是 ==
而不是 ===
。
如果您不想考虑这种情况,我可能建议使用 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
仅供参考,您未使用 !=
或 !==
比较不同来源的字符串可能会导致意外结果。
您可以做的一件事是将您的值转换为相同的类型,然后进行比较。 例如:
if (intval('1') === intval('01')) ...
这样你就得到整数的两侧,它只是一个整数比较。
请注意,如果您输入一个非数字值,该函数将始终 return 0