IF条件(数组与变量的元素)

时间:2018-01-15 20:42:43

标签: php

我有一个if语句,条件似乎没有评估我期待的。我正在比较两个变量,一个是SQL查询到MS SQL Server的结果,另一个是常规PHP变量,即:$row[1]=="$searchString"

$row来自SQL查询时,条件总是计算为false,但是当它来自数组时,它会正确地计算为true(请参阅示例输出)。以下代码说明了这一点。

注意:SQLgetDayTypesTable是一个使用sqlsrv_fetch_array的函数,我知道这样可以正常工作。

    $dayTypesTable = SQLgetDayTypesTable($getDayTypesInfo);
    echo "From SQL Server: <br>";
    print_r($dayTypesTable); // Array from SQL Query
    echo "<br>**$searchString**<br>";
    foreach($dayTypesTable as $row) {
     if($row[1]==$searchString){echo "match<br>";}
     else {echo "nomatch<br>$row[1]<br>$searchString<br>";}
    }

   $dayTypesTable = array(array(1,'Weekday'),array(2,'Weekend'),array(3,'Special'));
      echo "Internal Array: <br>";
      print_r($dayTypesTable); // This looks just like the array from SQL query
      echo "<br>**$searchString**<br>";
      foreach($dayTypesTable as $row) {
        if($row[1]==$searchString){echo "match<br>";}
        else {echo "nomatch<br>$row[1]<br>$searchString<br>";}
      }

输出:

From SQL Server: 
Array ( [0] => Array ( [0] => 1 [1] => Weekday ) [1] => Array ( [0] => 2 [1] => Weekend ) [2] => Array ( [0] => 3 [1] => Special ) ) 
**Weekend**
nomatch
Weekday 
Weekend
nomatch
Weekend 
Weekend
nomatch
Special 
Weekend
Internal Array: 
Array ( [0] => Array ( [0] => 1 [1] => Weekday ) [1] => Array ( [0] => 2 [1] => Weekend ) [2] => Array ( [0] => 3 [1] => Special ) ) 
**Weekend**
nomatch
Weekday
Weekend
match
nomatch
Special
Weekend

0 个答案:

没有答案