【问题标题】:Count results inside foreach then store that value in a variable to be used elsewhere在 foreach 中计算结果,然后将该值存储在变量中以在其他地方使用
【发布时间】:2012-12-11 23:36:29
【问题描述】:

如何计算一个 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等

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

【问题讨论】:

  • +1。因为不是 0%,所以他-确实-知道如何接受问题
  • 我是这里的菜鸟。我不知道那是什么意思。
  • 答案左侧有一个复选框轮廓。如果特定答案回答了您的问题,请检查大纲内部,它会变成绿色。请记住,您只能选择一项,因此请选择您问题的最佳答案。

标签: php foreach


【解决方案1】:

只需使用简单的迭代器++ 方法。当您在第二个 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;
    }
}

【讨论】:

  • 谢谢你。为我的目的工作。
【解决方案2】:
$totalItems = count($xml->items);
foreach ($xml->items as $item) {
  echo "$item->name";
  echo "$item->address"; 
}

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      您的数组似乎存储在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_onetotalItems_two,您可以随时获取只需执行count($totalItems_one)count($totalItems_two) 的项目数。

      【讨论】:

        猜你喜欢
        • 2017-11-10
        • 2019-08-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-01
        • 1970-01-01
        • 2023-03-04
        • 1970-01-01
        相关资源
        最近更新 更多