如何从foreach php中删除重复值?

时间:2017-05-23 18:09:33

标签: php foreach

我有来自另一个文件的dropdwon菜单项。我即将获得,我也想标记选定的值。当我尝试下面的代码。选中的值和相关的foreach项都以dropdwon显示。如何只保留一个。请建议

        $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>';

2 个答案:

答案 0 :(得分:3)

将第二个赋值放在else中,或将公共部分重构为单个表达式。我更喜欢后者。这是重构:

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

请注意,if中您当前拥有的条件现在位于$html .=分配中,采用三元表达形式。<​​/ p>

答案 1 :(得分:0)

在将$ List传递给循环之前过滤它!