总是假的,为什么?

时间:2014-05-04 13:39:51

标签: php

我有一个循环:

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 $wecho $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";并且永远不会打印出来。

有人能看到问题吗?

1 个答案:

答案 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()在循环中执行此操作。