【问题标题】:Return the number of loops before a loop返回循环前的循环数
【发布时间】:2017-07-26 15:58:33
【问题描述】:

我正在尝试返回循环中的产品数量并在循环之前输出。下面总是返回0,那么有没有办法可以延迟输出它直到它完成循环之后?

if( $post_objects ):
$prodcount = 0;
?>

<h1>There are <?php echo $prodcount ?> items</h2>

<?php foreach( $post_objects as $post_object): ?>

<p>something</p>

<?php $prodcount++ ?>

<?php endforeach; ?>

<?php endif; ?>

【问题讨论】:

  • 谷歌如何在 PHP 中获取数组的长度...\
  • $numLoops = count($post_objects)
  • echo count($post_objects, COUNT_RECURSIVE);
  • @GrumpyCrouton 总是使用COUNT_RECURSIVE 来计算具有动态深度的数组
  • @ArunpandianM 你怎么知道它有动态深度?我们不知道内容

标签: php loops for-loop if-statement


【解决方案1】:

非常简单,只需 count() 数组并将其用作变量。

<?
if( $post_objects ):
?>
    <h1>There are <?php echo count($post_objects); ?> items</h2>
<?php 
    foreach( $post_objects as $post_object): 
?>
        <p>something</p>
<?php 
        $prodcount++
    endforeach;
endif;

【讨论】:

  • 无法抗拒重新格式化代码 :) :) :) 抱歉
  • @RiggsFolly 非常感谢!我试过了,但我不喜欢这种标记语法
  • 太棒了,谢谢。我还在学习,所以我不确定我为什么会被否决:(
  • @Ordog 你被否决了,因为这很可能是一个重复的问题,而且你没有付出太多的研究努力。在 stackoverflow 上,如果答案解决了您的问题,您应该单击答案旁边的复选标记以将其标记为正确。 :)
  • 好的,我确实尝试过研究,但我知道这是怎么回事。我还不能在 4 分钟内将您的答案标记为正确,但请放心,我会的。再次感谢。
【解决方案2】:

foreach 遍历数组时,不知道您为什么要尝试重新发明轮子,而不是在该数组上使用普通的count()

$prodcount = count($post_objects);

http://php.net/manual/en/function.count.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-22
    • 2018-05-27
    相关资源
    最近更新 更多