Php 查看循环中的下一个元素
好的,我有这个foreach php循环Php 查看循环中的下一个元素,php,arrays,loops,Php,Arrays,Loops,好的,我有这个foreach php循环 <?php foreach($final_products as $product){ ?> 我是这样访问它的 <?php print $product['product_price']; ?> 这很好,但我面临的挑战是如何访问该数组中的下一个元素 <?php print $product['product_price'] + $product["next_product"]['product_price'];
<?php foreach($final_products as $product){ ?>
我是这样访问它的
<?php print $product['product_price']; ?>
这很好,但我面临的挑战是如何访问该数组中的下一个元素
<?php print $product['product_price'] + $product["next_product"]['product_price']; ?>
下一个产品只是一个名称,我必须说明,我需要产品阵列价格中的下一个产品,但仍然会继续阵列循环的流程…有什么想法吗
<?php
for($i=0;$i<count($final_products)-1;$i++){
echo $final_products[$i+1];
}
?>
使用:$i+1
为了在数组中最后一个元素的强制转换中安全起见,我添加了for循环。谢谢@KonForce
如果您需要使用数组的最后一个元素,那么您可以使用array_pop()代码>
使用:$i+1
为了在数组中最后一个元素的强制转换中安全起见,我添加了for循环。谢谢@KonForce
如果您需要使用数组的最后一个元素,那么您可以使用array_pop()代码>考虑这样一种情况,即您处于循环的末尾,并且没有“下一个产品”;那你想做什么
也许最好的情况是不要寻找下一个产品,而是储存你加工的最后一个产品,然后从那里开始工作。这样,您就不会提前完成循环过程。请考虑这样一种情况,即您处于循环的末尾,并且没有“下一个产品”;那你想做什么
也许最好的情况是不要寻找下一个产品,而是储存你加工的最后一个产品,然后从那里开始工作。这样,您就不会提前循环过程。您可以提前一步开始循环,并使用一个临时变量来保存前面的项目,如下所示:
$curr = null;
foreach ($arr as $next) {
if (!is_null($curr)) {
// your code
}
$curr = $next;
}
这样,将跳过第一次迭代以分配$curr
,因此在下一次迭代中,$curr
实际上是上一个项目。您可以提前一步开始循环,使用一个临时变量来保存上一个项目,如下所示:
$curr = null;
foreach ($arr as $next) {
if (!is_null($curr)) {
// your code
}
$curr = $next;
}
这样,将跳过第一次迭代以分配$curr
,因此在下一次迭代中,$curr
实际上是上一项。数组是如何索引的?它是数值数组还是关联数组?如果是数字数组,则使用for循环代替foreach循环,然后只需对当前键+1即可获得下一个。可能重复的^CachingIterator:)数组如何索引?它是数值数组还是关联数组?如果是数值数组,则使用for循环代替foreach循环,然后只需对当前键+1即可获得下一个。可能的^CachinGitter重复:)这具有相同的反问题。如何处理循环的第一个元素?您仍然需要检查这两种解决方案。有你名气的人不应该犯这样的错误。如果他使用以0开头,以n-2结尾的for()
循环,这其实根本不是问题@是的123,我同意……但事实证明他使用的是非索引数组。所以跳过第一个会更容易。@yes123:迭代器(foreach)意味着对不确定大小的集合进行顺序迭代;大小可以是零、一或更多。当集合中的元素在它们之间进行交互(“this”->“next”)并且您的分析过程处理顺序处理(foreach)时,您只能处理以前检查过的值。我们在这里讨论的是数组,如果所有键都是顺序的,那么您可以轻松地在数组中检查下一个。如果OP数组键不是int顺序的,我可能同意你的看法,这有同样的反问题。如何处理循环的第一个元素?您仍然需要检查这两种解决方案。有你名气的人不应该犯这样的错误。如果他使用以0开头,以n-2结尾的for()
循环,这其实根本不是问题@是的123,我同意……但事实证明他使用的是非索引数组。所以跳过第一个会更容易。@yes123:迭代器(foreach)意味着对不确定大小的集合进行顺序迭代;大小可以是零、一或更多。当集合中的元素在它们之间进行交互(“this”->“next”)并且您的分析过程处理顺序处理(foreach)时,您只能处理以前检查过的值。我们在这里讨论的是数组,如果所有键都是顺序的,那么您可以轻松地在数组中检查下一个。如果OP数组键不是int顺序的,我可能同意你的看法。如果它们要在单个元素的数组上进行处理,该怎么办?数组的最后一个元素是如何打印价格的?array_pop()?我相信你知道这个函数存在,如果他们想对单个元素的数组进行处理,该怎么办?数组的最后一个元素是如何打印价格的?array_pop()?我相信你知道这个函数存在