2011-03-08 62 views
0

我需要將來自數據庫字段的數據與數組中的值進行比較,以查看是否有匹配並選擇匹配。如何比較這兩個數組以檢查匹配

這是我有:

$lookingfor = explode(",", $users_looking_for); 
$i = 0; 
foreach($i_am_looking_for_array as $key => $value){ 
if($value==$lookingfor[$i]){ 
    echo '<option value="'.$key.'" selected="selected">'.$value.$i.'</option>';} 
else { 
    echo '<option value="'.$key.'">'.$value.$i.'</option>';} 
$i ++; 
} 

所以,$ lookingfor獲取存儲在數據庫字段格式的數據(藍,黑,白)和$ im_looking_for_array具有相同的選項。 我的目標是在$ im_looking_for_array中有一個包含所有選項的下拉字段,如果匹配,請在多選下拉字段中將其標記爲SELECTED。

我上面的代碼發生了什麼事情,它只接受第一場比賽!有任何想法嗎? 非常感謝。

回答

3

我認爲你的代碼的問題是你只有一個循環。所以你只能用相同的索引來比較事物。如果數組的長度不同,這甚至可能導致錯誤(如果count($i_am_looking_for_array) > count($lookingfor)未定義索引)。

如何使用in_array

$lookingfor = explode(",", $users_looking_for); 

foreach($i_am_looking_for_array as $key => $value){ 
if(in_array($value, $lookingfor)) 
    echo '<option value="'.$key.'" selected="selected">'.$value.$key.'</option>'; 
else 
    echo '<option value="'.$key.'">'.$value.$key.'</option>'; 
} 
+2

會失敗。在第4行缺少括號。 – seriousdev 2011-03-08 20:39:06

+0

@sexyprout,你贏了。謝謝,修正;) – Czechnology 2011-03-08 20:40:51

+0

謝謝@Czechnology。這就是問題所在,而且確實很合理!再次感謝。 – Bruno 2011-03-08 20:44:36

相關問題