2017-05-23 6 views
-1

다른 파일에서 가져 오는 메뉴 항목이 드롭 다운되어 있습니다. 메신저 나 점점 선정 된 가치를 표시하고 싶습니다. 때 아래 코드와 함께 노력. 선택된 값과 관련 foreach 항목은 모두 드롭 다운에 표시됩니다. 오직 하나만 지키는 법. 조언을주십시오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에 두 번째 할당을 지정하거나 공통 부분을 단일 표현식으로 리팩터링하십시오. 나는 후자를 선호한다. 당신이 현재 if에있는 조건이 삼항 표현의 형태로 $html .= 할당에 지금

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

주 : 다음은 리팩토링이다.

+0

고마워요! 도움이된다. –

0

루프를 전달하기 전에 $ 목록을 필터링하십시오!

+0

그들은'else'가 필요합니다. 그들은'if'가 충족 될 때 중복됩니다 ... – Rasclatt

관련 문제