关于php:计算foreach循环中的迭代次数

Count number of iterations in a foreach loop

如何计算foreach中有多少项?

我想计算总行数。

1
2
3
foreach ($Contents as $item) {
    $item[number];// if there are 15 $item[number] in this foreach, I want get the value : 15
}

谢谢。


首先,如果您只想找出数组中元素的数量,请使用count。现在,为了回答你的问题…

How to calculate how many items in a foreach?

1
2
3
4
5
$i = 0;
foreach ($Contents as $item) {
    $i++;
    $item[number];// if there are 15 $item[number] in this foreach, I want get the value : 15
}

你也可以看看这里的答案:

  • 如何查找foreach索引


你不需要在foreach里做。

只需使用count($Contents)


1
sizeof($Contents);

1
count($Contents);


1
2
3
foreach ($Contents as $index=>$item) {
  $item[$index];// if there are 15 $item[number] in this foreach, I want get the value : 15
}


有几种不同的方法可以解决这个问题。

您可以在foreach()前面设置一个计数器,然后迭代,这是最简单的方法。

1
2
3
4
5
$counter = 0;
foreach ($Contents as $item) {
      $counter++;
       $item[number];// if there are 15 $item[number] in this foreach, I want get the value : 15
}


尝试:

1
2
3
4
5
6
7
$counter = 0;
foreach ($Contents as $item) {
          something
          your code  ...
      $counter++;      
}
$total_count=$counter-1;


1
2
3
4
5
6
7
8
foreach ($array as $value)
{      
    if(!isset($counter))
    {
        $counter = 0;
    }
    $counter++;
}

//如果代码显示不正确,则表示抱歉。P

//我更喜欢这个版本,因为计数器变量在foreach中,而不是在上面。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$Contents = array(
    array('number'=>1),
    array('number'=>2),
    array('number'=>4),
    array('number'=>4),
    array('number'=>4),
    array('number'=>5)
);

$counts = array();

foreach ($Contents as $item) {
    if (!isset($counts[$item['number']])) {
        $counts[$item['number']] = 0;
    }
    $counts[$item['number']]++;
}

echo $counts[4]; // output 3

你可以做sizeof($Contents)count($Contents)

还有这个

1
2
3
4
5
$count = 0;
foreach($Contents as $items) {
  $count++;
  $items[number];
}