【问题标题】:PHP fetch_assoc return values, loopingPHP fetch_assoc 返回值,循环
【发布时间】:2015-02-23 14:28:27
【问题描述】:

我有以下代码,它返回两个关联数组(都是 SQL 查询结果)。它应该迭代地将 tableA 中的值与 tableB 中的值进行比较,并确认 A 中的值在 B 中。就目前而言,它返回部分结果,而另一部分结果为空(并且结果中的值不应为空)。

  • 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++; 
    } 
    

有人对如何解决这个问题有任何建议吗?谢谢。

【问题讨论】:

  • 痛苦...为什么不在单独的循环中获取两个结果集,然后array_intersect() 他们呢?照原样,您的代码将无法捕获 B 集合中存在的任何项目,但由于您用完了 A 中的内容,因此尚未获取。

标签: php mysql sql arrays loops


【解决方案1】:

array_diff_assoc() might do what you need。它应该返回两个数组中存在的所有键 > 值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 2015-04-22
    • 2017-09-11
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    相关资源
    最近更新 更多