2015-02-23 124 views
0

我有下面的代碼,返回兩個關聯數組(這兩個都是SQL查詢結果)。它應該迭代地將tableA中的值與tableB中的值進行比較,並確認A中的值是否在B.現在,它返回結果的一部分,結果的另一部分爲null(以及結果中的值不應爲空)。PHP fetch_assoc返回值,循環

  • COLUMNNAME是用於查詢
  • 列名y是我的櫃檯

    while($tableA = $resultA -> fetch_assoc()) 
    { 
        $tableB = $resultB -> fetch_assoc(); 
        $testA[] = $tableA; 
        $testB[] = $tableB; 
        $value = $testA[$y]; 
        $array = $testB[$y]; 
    
        //var_dump($value); 
        //var_dump($array); 
        //echo "Value[y]: ".$testA[$y]."\n"; 
    
        echo $value['$columnName']."\n"; 
    
        if(in_array($value['$columnName'], $testB)) 
        { 
         echo $columnName.": ".$value["$columnName"]." PASS, A in B\n"; 
         //echo $value["$columnName"]."\n"; 
        } 
        else 
        { 
         echo $columnName.": ".$value["$columnName"]." FAIL, A in B\n"; 
         //echo "FAIL\n"; 
        } 
    
        $y++; 
    } 
    

沒有任何人有任何建議如何解決這一問題?謝謝。

+1

痛苦的...爲什麼不在單獨的循環中獲取兩個結果集,然後[array_intersect()](http://php.net/array_intersect)它們呢?原因是,你的代碼將失敗以捕獲存在於'B'集合中的任何項目,但尚未被提取,因爲用完'A'中的東西。 – 2015-02-23 14:36:40

回答