如何比较两个数组,然后为'matches'添加一个类到从新数组生成的输出选择选项?

时间:2011-11-24 19:07:45

标签: php arrays

我有一个包含在选择框中的所有选项的数组:

Array
(
   [2836] => 4 16:40:00
   [2835] => 3 13:20:00
)

第二个数组选项在数据库中有一个特定的标志:

Array
(
   [2835] => 3 13:20:00
)

如何比较这两个数组以生成一个选择列表,该列表将特定类应用于数组中找到的匹配项?我很乐意帮助谢谢!

我的选择列表的视图,它接收第一个数组:

<select>
<?php foreach ($courses as $key=>$course): ?>   
<option id="<?php echo $key;?>">        
    <?php echo $course; ?>
</option>
<?php endforeach;?> 
</select>

1 个答案:

答案 0 :(得分:1)

您可以使用array_intersect查找两个阵列常用的值。然后在foreach循环中,您可以检查当前键(或值)是否来自匹配数组。

$matches = array_intersect($arr1, $arr2);

在视图文件中:

<select>
<?php foreach ($courses as $key=>$course): ?>   
    <option id="<?php echo $key;?>" class="<?php echo isset($matches[$key]) ? 'match' : '' ?>">        
        <?php echo $course; ?>
    </option>
<?php endforeach;?> 
</select>