2011-03-08 63 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

相关问题