【发布时间】:2014-08-12 07:55:21
【问题描述】:
我想根据$chosen 数组中的元素数量生成选择框,每个选择框都有默认的选择选项。第一个是A,第二个是D。以下代码几乎可以,除了我想删除重复的选项。这是输出:
<select>
<option>Select</option>
<option value="A" selected="selected">A</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
</select>
<select>
<option>Select</option>
<option value="D" selected="selected">D</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
</select>
我尝试将array_merge 与array_unique 合并$options 和$chosen 在foreach($options as $option) 之前,但它不起作用。任何人都可以提出解决方案吗?
<?php
$options = array("A","B","C","D","E");
$chosens = array("A","D");
foreach($chosens as $chosen)
{
print "<select><option>Select</option>";
if(in_array($chosen,$options))
{
print "<option value='".$chosen."' selected='selected'>$chosen</option>";
}
/* $options = array_unique(array_merge($chosen,$options)); */
foreach($options as $option)
{
print "<option value='".$option."'>$option</option>";
}
print "</select>";
}
?>*
【问题讨论】:
-
我认为您需要检查
chosens数组中的值是否已存在于options数组中 -
您希望选择 $chosen 数组中的值?
-
@TBI,是的,这就是我想要的。
-
只要在第二个foreach循环中检查
$option == $chosen,就可以去掉in_array()条件,here's an example -
是的,但是 $chosen 中有两个值...它会覆盖。