如何比较从两个不同的提取数组中检索的值

时间:2013-06-06 16:14:52

标签: php

我从数据库中检索了两个fetch数组,并尝试比较两个值,直到它们匹配为止,但似乎有点难以弄清楚我的错误。

这两个数据库最多有2个jobrequestnumber,所以匹配的数量应该是两个,但它只计算一个(如下所示)。

 $value1=array();
 $value2 =array();

 $queryfordispatch = "select jobrequestnumber from dispatch";
 $resultfordispatch = mysql_query($queryfordispatch);
 $valuefordispatch =mysql_fetch_array($resultfordispatch);
 $value1 = $valuefordispatch['jobrequestnumber'];

 $queryforjobrequest = "select jobrequestnumber from jobrequest";
 $resultforjobrequest = mysql_query($queryfordispatch);
 $valueforjobrequest =mysql_fetch_array($resultforjobrequest);
 $value2 = $valueforjobrequest['jobrequestnumber'];

 $cfd=count($valuefordispatch);
 $cfj=count($valueforjobrequest);

//在这个for循环中,如果我尝试回显$ value1的值,它只产生值“1”

for($i=1; $i<=$cfd; $i++){
for($j=1; $j<=$cfj; $j++){
if ($value1 == $value2 ){

    $queryforupdate ="UPDATE jobrequest SET status = 'processed' where jobrequestnumber = $value2 ";
    mysql_query($queryforupdate);
  }
 }
}

所以我期望的结果是

jobnum

 1=1? yes --> update
 1=2? no  --> discard
 2=1? no  --> discard
 2=2? yes --> update

2 个答案:

答案 0 :(得分:0)

如果您正在尝试查看array1和array2是否共享值,请使用类似的内容。

$a = array('1','2','3','4','5','6','7','8','9');
$b = array('A','B','C','4','5','6','7','E','F');
$num_shared = 0;

foreach($a as $key => $val) {
    if (in_array($val, $b)) {
        echo $val . '<br />';
        $num_shared++;
    }
}

echo '<strong>'. $num_shared . '</strong>';

答案 1 :(得分:0)

让我们从这开始:

  

欢迎使用Stack Overflow! Please, don't use mysql_* functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDOMySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial

至于找到两个数组之间的差异,可以随时使用 array_diff

<?php
//Example #1 array_diff() example
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);

print_r($result);
?>
     

$ array1中的多次出现都以相同的方式处理。这个   将输出:

Array
(
    [1] => blue
)

但是,要分别比较每个值,您需要同时遍历两个数组(最好使用for循环),并比较每个项目。这就是你正在做的事情。