2016-09-19 84 views
1

我有兩個foreach循環,其中一個包含事件列表,另一個包含用戶從數據庫中選擇的值。使用php刪除重複值在多選擇下拉列表中使用php

這裏是我的代碼:

<select class="form-control select2-select" autocomplete="off" name="event[]" multiple> 
<option value="">--Select--</option> 
    <?php 
    $variable= $editlist['evname']; 
    $array = explode(',', $variable); 

    foreach($evlist as $list){ 
    foreach($array as $value){ 
    ?> 
    <option value="<?php echo $list->event ?>"<?php if($list->event==$value) echo "selected";?>><?php echo $list->event ?> 
    </option> 
    <?php 
} 
} 
?> 
</select> 

$ evlist包含:

array:9 [▼ 
    0 => "3rd Edition Healthscape Summit India-2016" 
    1 => "6th Edition RESCOM Summit - Middle East" 
    2 => "8th Edition Hotelier Summit Middle East-2016" 
    3 => "Smart Education India-2016" 
    4 => "15th Edition Design Mission India-2016" 
    5 => "16th Edition Design Mission Africa-2016" 
    6 => "1st Edition India Industrial Summit 2016" 
    7 => "Pharmac India-2016" 
    8 => "17th Edition Design Mission Saudi Arabia-2016" 
] 

這裏$數組包含像只有兩個值:

Array ( 
[0] => Smart Education India-2016 
[1] => 6th Edition RESCOM Summit - Middle East 
) 

我的輸出如下:

output

如何防止在下拉菜單中的重複值?

+1

您可以創建一個數組來保存已添加的值,然後檢查該值是否在數組中。 – furrie

+0

但它只有兩個值,我從數據庫中獲得我必須使它們在下拉列表中進行選擇。 – 06011991

+0

他指的是$ list-> event。你也提到了sql數據庫,使用select事件不在[事件列表]中 –

回答

1

有兩種選擇:

1)讓你的陣列獨特

<select class="form-control select2-select" autocomplete="off" name="event[]" multiple> 
<option value="">--Select--</option> 
    <?php 
    $variable= $editlist['evname']; 
    $array = explode(',', $variable); 
    foreach(array_unique($evlist)as $list){ ?> 
     <option value="<?php echo $list->event ?>"<?php if(in_array($list->event,$array)) echo "selected";?> > <?php echo $list->event ?> 
    </option> 
    <?php 
    } 
?> 
</select> 

2)在查詢的選項值添加組(即事件)

+0

不,它沒有工作。實際上,我的$ evlist只有唯一的值。但它發生的原因是$ array有兩個值,兩次旋轉foreach循環,因爲它給出的值重複兩次。 – 06011991

+0

我已編輯我的答案,請嘗試它,如果它適合你。 – kc1994

+0

不,它沒有工作.. – 06011991

1

請嘗試:

<select class="form-control select2-select" autocomplete="off" name="event[]" multiple> 
<option value="">--Select--</option> 
    <?php 
    $variable= $editlist['evname']; 
    $array = explode(',', $variable); 

    foreach($evlist as $list){ 
    ?> 
    <option value="<?php echo $list->event ?>" 

<?php 
if(in_array($list->event, $array)) 
echo "selected";?>><?php echo $list->event ?> 
    </option> 
    <?php 
} 
?> 
</select> 
+0

是的,這是工作,但只有第一個值被選中。如何使兩個值被選中?任何想法 ? – 06011991

+0

好吧@Harshitha讓我再檢查一下 –

+0

你能調試嗎? $ array中的值是什麼? –

相關問題