php foreach跳出循环遍历
|
我有一个foreach循环和一个if语句。如果发现匹配,我需要最终跳出foreach循环。 foreach($equipxml as $equip) { $current_device = $equip->xpath("name"); if ( $current_device[0] == $device ) { // found a match in the file $nodeid = $equip->id; } } 如何实现呢? if不是循环结构,所以你不能使用它跳出循环。 但是,您可以通过简单地调用来break来跳出foreach循环。在您的示例中,它具有所需的效果: foreach($equipxml as $equip) { $current_device = $equip->xpath("name"); if ( $current_device[0] == $device ) { // found a match in the file $nodeid = $equip->id; // will leave the foreach loop and also the if statement break; } this_command_is_not_executed_after_a_match_is_found(); } break采用一个可选参数,它定义了它应该中断多少个循环结构。例: foreach (array('1','2','3') as $a) { echo "$a "; foreach (array('3','1') as $b) { echo "$b "; if ($a == $b) { break 2; // this will break both foreach loops } } echo ". "; // never reached } echo "!"; 结果输出: 1 3 2 1! 如果出于某些不明原因 - 你想要break一个if语句(这不是一个循环结构,因此每个定义都不易破解),你可以简单地将你包裹if在一个微小的循环结构中,这样你就可以跳出那个代码块。 请注意,这是完全黑客攻击,通常你不想这样做: do if ($foo) { // Do something first... // Shall we continue with this block,or exit now? if ($abort === true) break; // Continue doing something... } while (false); 如果你想知道语法:它的工作原理是因为这里使用了缩写语法。外部花括号可以省略,因为循环结构只包含一个语句:if ($foo) { .. }。 另一个例子: do $i++; while ($i < 100) 相当于 do { $i++; } while ($i < 100) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
