使用foreach时如何限制循环

时间:2019-07-08 02:53:59

标签: php

我有这样的代码来检查购物车中是否有商品ID == 13

foreach ($_cart as $key => $value1){
if( in_array( 13 ,$value1 ) ){ 
.....some code.....
}
else {
...some code ....
}

我想要的是,如果有一个ID为13的产品,那么foreach只会循环两次,如果不存在,那么只会循环一次。如何?

2 个答案:

答案 0 :(得分:1)

因此,如果有两个ID为13的产品,您想打破循环吗?
在这种情况下,您可以使用增量计数器:

$product_13_count = 0;

foreach ($_cart as $key => $value1) {
    if (in_array(13, $value1)) { 
      $product_13_count++; // Increase count based on the number of instances of product 13
      if ($product_13_count > 2) {
        break; // Too much of product 13
      }
      else {
        // Continue -- there are acceptable levels of product 13
      }
    }
    else {
      // Not product 13
    }
}

答案 1 :(得分:1)

您可以通过计算迭代次数来实现:

<?php
$iterations = 1;
foreach ($_cart as $key => $value1){
  if ($iterations > 2) {
    break;
  }
  if( in_array( 13 ,$value1 ) ){ 
    .....some code.....
  }
  else {
    ...some code ....
  }
  $iterations++;