2017-05-23 11 views
-1

私は別のファイルから取得するdropdwonメニュー項目を持っています。そして私は選択した価値にマークを付けたいと思っています。私は以下のコードで試してみる。選択された値と関連foreach項目の両方がドロップダウンに表示されます。どのように1つだけを保つか。アドバイスをお願いしますforeach PHPから繰り返し値を削除するには?

 $html .= '<select>'; 
     $html .= '<option value="">Select</option>'; 
     foreach ($List as $ll) { 
      if ($ll== $this->ll) { 
       $html .= '<option selected value="'.$this->ll.'">width to '.$this->blockWidth.'%</option>'; 

      } 

      $html .= '<option value="'.$ll.'"> width to '.$ll.'%</option>'; 
     } 
     $html .= '</select>'; 
+0

http://php.net/manual/en/function.array-unique.php –

+0

'foreach'に渡す前にあなたのリストを絞り込む必要があります –

+1

私が見るところでは、必要なのは' else'です。 – Rasclatt

答えて

3

elseに2番目の割り当てを入れるか、共通部分を1つの式にリファクタリングします。私は後者を好む。あなたが現在ifで持っている条件は、三元式の形で$html .=割り当てに今ある

foreach ($List as $blockWidth) { 
    $html .= '<option '. 
     ($blockWidth == $this->blockWidth ? 'selected' : ''). 
     'value="'.$blockWidth.'"> width to '.$blockWidth.'%</option>'; 
} 

注:ここではリファクタリングです。

+0

ありがとう!助けになる –

0

ループに渡す前にあなたの$リストをフィルタリングしてください!

+0

彼らは 'else'がすべて必要です。彼らは 'if'が満たされたときに複製しています... – Rasclatt