2017-04-21 64 views
0

我想弄清楚如何从循环中删除语言ID 10。Foreach跳过选项值

<? foreach ($languages as $langId => $langDetails): ?> 
      <option value="<?=$langId?>" <?=($langId == zbanRegistry::getInstance()->lang) ? 'selected="selected"' : NULL;?>><?=$langDetails['LABEL']?></option>    
      <? endforeach; ?> 

,其结果是:

<select name="lang" id="lang" > 
    <option value="1" selected="selected">Language 1</option>   
    <option value="2" >Language 2</option>   
    <option value="3" >Language 3</option>   
    <option value="4" >Language 4</option>   
    <option value="5" >Language 5</option>   
    <option value="6" >Language 6</option>   
    <option value="7" >Language 7</option>   
    <option value="8" >Language 8</option>   
    <option value="9" >Language 9</option>   
    <option value="10" >Language 10</option>      
</select> 

任何帮助表示赞赏:-)

+0

如果测试添加如果$ LANGID!= 10左右呼应出你的选项值 – clearshot66

+0

使用未设置功能 http://php.net/manual/en/function.unset.php –

+0

您可以跳过迭代'if($ langId == 10){continue; }'在循环开始处 – Thakkie

回答

0

您可以检查LANGID的价值。也许这样的事情?

<? foreach ($languages as $langId => $langDetails): ?> 
    <? if ($langId != 10): ?> 
     <option value="<?=$langId?>" <?=($langId == zbanRegistry::getInstance()->lang) ? 'selected="selected"' : NULL;?>><?=$langDetails['LABEL']?></option>    
    <? endif; ?> 
<? endforeach; ?> 
+1

请注意,'<?'标记是一个* shorttag *,必须启用它,否则会出错。在这个问题上使用了,因此它也回答了。 – Nytrix

+0

是的,我知道。但感谢您的补充。 –

+0

谢谢本杰明。简单它最好:) – Naisus