2015-02-23 132 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

回答