[英]how to compare values retrieved from two different fetch array
我有兩個從數據庫中檢索到的提取數組,並嘗試比較兩個值,直到它們匹配為止,但是似乎很難弄清楚我哪里寫錯了。
這兩個數據庫最多有2個jobrequestnumber,因此,匹配的數目據說是2,但是只計一個(如下所示)。
$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
如果要查看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>';
讓我們從這個開始:
歡迎使用Stack Overflow! 請不要在新代碼中使用
mysql_*
函數 。 它們不再維護,已正式棄用 。 看到紅色框了嗎? 相反,要了解准備好的語句 ,並使用PDO或MySQLi- 本文將幫助您確定哪一個。 如果您選擇PDO, 這是一個很好的教程 。
至於找到兩個數組之間的差異 ,可以始終使用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
循環),並比較每個項目。 這是您已經在做的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.