我有一个循环:
for ($p=1; $p<=$ncarts; $p++) {
$contador_pontos_cartela[$p] = 0;
for ($g=1; $g<=$quantidade_sorteada; $g++) {
foreach ($numeros_cartela[$p] as $w) {
echo "Valor de w: {$w} <br>";
echo "Valor de sorted: {$sorted[$g]} <br>";
if ($w == $sorted[$g]){
echo "truue";
$contador_pontos_cartela[$p] += 1;
}
}
}
}
和
$ncarts = 3;
$quantidade_sorteada = 3;
$numeros_cartela[1] = array(1, 3);
$numeros_cartela[2] = array (5, 7);
$numeros_cartela[3] = array(9, 11);
$sorted[1] = 1;
$sorted[2] = 3;
$sorted[3] = 5; `
我插入echo $w
和echo $sorted[$g]
以查看它们的值是否正确。而aswer是;是。 echo
的输出是:
Valor de w: 1
Valor de sorted: 1
Valor de w: 3
Valor de sorted: 1
Valor de w: 1
Valor de sorted: 3
Valor de w: 3
Valor de sorted: 3
Valor de w: 1
Valor de sorted: 5
Valor de w: 3
Valor de sorted: 5
Valor de w: 5
Valor de sorted: 1
Valor de w: 7
Valor de sorted: 1
Valor de w: 5
Valor de sorted: 3
Valor de w: 7
Valor de sorted: 3
Valor de w: 5
Valor de sorted: 5
Valor de w: 7
Valor de sorted: 5
Valor de w: 9
Valor de sorted: 1
Valor de w: 11
Valor de sorted: 1
Valor de w: 9
Valor de sorted: 3
Valor de w: 11
Valor de sorted: 3
Valor de w: 9
Valor de sorted: 5
Valor de w: 11
Valor de sorted: 5
换句话说,我有3个积极的结果。 $w
等于$sorted
的地方(1,1; 3,3;和5,5)
但是if ($w == $sorted[$g])
永远不会成真......你知道,我在if
内有回音; echo "truue";
并且永远不会打印出来。
有人能看到问题吗?
答案 0 :(得分:1)
var_dump()的输出: -
string(3) "1 " string(1) "1" string(3) "3 " string(1) "1" string(3) "1 " string(1) "3" string(3) "3 " string(1) "3" string(3) "1 " string(1) "5" string(3) "3 " string(1) "5" string(3) "5 " string(1) "1" string(3) "7 " string(1) "1" string(3) "5 " string(1) "3" string(3) "7 " string(1) "3" string(3) "5 " string(1) "5" string(3) "7 " string(1) "5" string(3) "9 " string(1) "1" string(4) "11 " string(1) "1" string(3) "9 " string(1) "3" string(4) "11 " string(1) "3" string(3) "9 " string(1) "5" string(4) "11 " string(1) "5"
表明您没有获得干净的数据/输入。你试图比较&#34; 1&#34;用&#34; 1&#34;。看看这些值来自何处并确保它们被清理干净。例如,使用trim()
删除任何不需要的空格或将它们转换为整数。
使用最初来自用户输入但尚未正确过滤的数据时,通常会出现此问题。
我建议您使用源数据执行此操作,但作为快速修复,您可以使用trim()
在循环中执行此操作。