2012-03-23 50 views
0

我有这样的代码:break;不能正常工作

foreach ($items as $key=>$value) { 

    if (strpos(strtolower($key), $text) !== false) { 
      array_push($result, array("id"=>$value, "label"=>$key, "value"=>strip_tags($key))); 
    } 
    if (count($result) > 2) 
     break;    
} 

break语句不工作,所以我获得超过2项。 但是,如果我改变了休息时间;到

die('results more than 2'); 

这表明它的正常工作。

我正确使用break语句吗?

+0

更多少那么双?因为从看它,我希望$结果包含3项。是的,你正在正确使用中断。 – Benubird 2012-03-23 14:39:38

+0

当$ result包含3个或更多itens('> 2')时,您的当前代码将会中断。你想让它完全分裂为2吗?然后使用'== 2'或'> 1'。 – bfavaretto 2012-03-23 14:39:53

回答

9

当然,你会得到超过2项。你说if count($result) > 2而不是>= 2 所以当你有超过2个结果时,它会中断。

1

如果你breakif (count($result) > 2)当然你会有超过2项。 如果你想只有两种,只要使用if (count($result) >= 2)

1

应用并测试结果:

if (count($result) >= 2) break;