如何计算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.等等。
我怎样才能做到这一点?请指教。
答案 0 :(得分: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;
}
}
答案 1 :(得分:1)
$totalItems = count($xml->items);
foreach ($xml->items as $item) {
echo "$item->name";
echo "$item->address";
}
答案 2 :(得分:0)
只需在循环内的条件中使用count($xml->items)
和该值。
答案 3 :(得分: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)
的项目数。