我从数据库中检索了两个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
答案 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,并使用PDO或MySQLi - 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
循环),并比较每个项目。这就是你正在做的事情。