for inside for loop php不适用于这两个表

时间:2018-03-29 07:45:45

标签: php mysql for-loop

我有两个表,我希望使用与函数compare()的特定比较来比较元素。问题是,我有两个表:一个是静态的,一个是动态的。我从第一个table1获得第一个元素$results1[$i],并将它与table2中的第一个元素进行比较(我们假设table2在时间0有一个元素)。如果compare()函数返回的数字小于3,我将table1的第一个元素添加到table2,然后我必须将表1的第二个元素与所有元素进行比较表2。

for($i = 0; $i < count ( $results1 ); $i++) {
    echo ' value 1 : ' . $results1 [$i] . '  ';
    for($k = 0; $k < count ( $results2 ); $k++) {
        echo ' value 2 : ' . $results2 [$k] . '  ';
        compare($results1 [$i],$results2 [$k]);
    }   
}

function compare($element1_table1,$element2_table2){
    if ($results_of_comparison< 3){
        //we add element1 to table2 and 
       //then we compare the next element of table 1 with all elements of table2
    }
}

如何使用循环将表1的下一个元素与table2的所有元素进行比较? 有人能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

如果数组具有相同的结构,您可以使用array_diff()输出仅包含在两个数组中的第一个中的条目

$results1   = array(1,2,3,4);
$results2   = array(1,2,5);

$difference = array_diff($results1, $results2);

这将返回

3, 4

OR

如果数组具有相同的结构,您可以使用array_intersect()输出两个数组中包含的那些条目

$results1   = array(1,2,3,4);
$results2   = array(1,2,5);

$difference = array_intersect($results1, $results2);

这将返回

1, 2

示例:

$static  = array(1, 4, 6, 9);
$dynamic = array();

foreach($anything as $value){
  $dynamic[] = $value;
}

$difference = array_intersect($static, $dynamic);