0

你如何计算一个 foreach 中的结果,然后将该值存储在一个变量中以在另一个 foreach 上使用。

例子。此 foreach 返回 5 个项目

foreach ($xml->items as $item) {
  echo "$item->name";
  echo "$item->address"; 
}

现在我希望计算上面的 foreach 并将其存储在 $totalitems 中,并在另一个 foreach 上使用。第二个 foreach 也计算其结果并存储在 $totalitems2 中。像这样的东西:

foreach ($xml->items as $item) { //Same source but they will be displayed separately based on a condition.
  echo "$item->name";
  echo "$item->address";
  if_blah_blah_meet_condition_then_break;
}

所以基本上我在这里想要的是限制在两个 foreach 组合上显示的项目总数。$totalitems 和 $totalitems2 的总和应该是 8。8 是我想要限制返回的项目的数量。如果另一个 foreach 的项目比另一个多,则无关紧要。3 和 5。4 和 4。6 和 2。等等。

我怎样才能做到这一点?请指教。

4

4 回答 4

3

只需使用简单的迭代器++方法。当您在第二个foreach时,请注意何时$i 通过您要停止它的数字。

代码:

$i = 0;    
foreach ($xml->items as $item) {
    echo "$item->name";
    echo "$item->address";
    $i++;
}

foreach ($xml->items as $item) {
    echo "$item->name";
    echo "$item->address";

    $i++;
    if ($i > 5) { // or whatever the number is
        break;
    }
}
于 2012-12-11T15:32:35.883 回答
1
$totalItems = count($xml->items);
foreach ($xml->items as $item) {
  echo "$item->name";
  echo "$item->address"; 
}
于 2012-12-11T15:32:42.020 回答
0

只需count($xml->items)在循环内的条件中使用和该值。

于 2012-12-11T15:33:21.810 回答
0

似乎您的数组已存储在xml->items其中,如果您想存储它,您只需将其保存在另一个变量中。

foreach ($xml->items as $cont=>$item) {
  echo "$item->name";
  echo "$item->address"; 

  if($cont<8){
      $totalItems_one[] = $item; 
  }
}

//whatever changes you do to $xml->items

foreach ($xml->items as $cont=>$item) {
  echo "$item->name";
  echo "$item->address"; 

  if($cont<8){
      $totalItems_two[] = $item; 
  }
}

像这样,您拥有两个新数组totalItems_one,并且您可以随时或totalItems_two随时获取项目的数量。count($totalItems_one)count($totalItems_two)

于 2012-12-11T15:36:29.330 回答