php 计算 foreach 循环中的迭代次数
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/6220546/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Count number of iterations in a foreach loop
提问by yuli chika
How to calculate how many items in a foreach?
如何计算foreach中有多少个项目?
I want to count total rows.
我想计算总行数。
foreach ($Contents as $item) {
$item[number];// if there are 15 $item[number] in this foreach, I want get the value : 15
}
回答by aioobe
If you just want to find out the number of elements in an array, use count. Now, to answer your question...
如果您只想找出数组中元素的数量,请使用count. 现在,回答你的问题...
How to calculate how many items in a foreach?
如何计算foreach中有多少个项目?
$i = 0;
foreach ($Contents as $item) {
$item[number];// if there are 15 $item[number] in this foreach, I want get the value : 15
$i++;
}
If you only need the index inside the loop, you could use
如果您只需要循环内的索引,则可以使用
foreach($Contents as $index=>$item) {
// $index goes from 0 up to count($Contents) - 1
// $item iterates over the elements
}
回答by tjm
You don't need to do it in the foreach.
您不需要在foreach.
Just use count($Contents).
只需使用count($Contents).
回答by Alejandro Moreno
foreach ($Contents as $index=>$item) {
$item[$index];// if there are 15 $item[number] in this foreach, I want get the value : 15
}
回答by gpresland
count($Contents);
or
或者
sizeof($Contents);
回答by JimP
There's a few different ways you can tackle this one.
有几种不同的方法可以解决这个问题。
You can set a counter before the foreach() and then just iterate through which is the easiest approach.
您可以在 foreach() 之前设置一个计数器,然后迭代这是最简单的方法。
$counter = 0;
foreach ($Contents as $item) {
$counter++;
$item[number];// if there are 15 $item[number] in this foreach, I want get the value : 15
}
回答by webbiedave
$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
回答by vivekpvk
Try:
尝试:
$counter = 0;
foreach ($Contents as $item) {
something
your code ...
$counter++;
}
$total_count=$counter-1;
回答by Journey Dagoc
You can do sizeof($Contents)or count($Contents)
你可以做sizeof($Contents)或count($Contents)
also this
还有这个
$count = 0;
foreach($Contents as $items) {
$count++;
$items[number];
}
回答by statistnr1
foreach ($array as $value)
{
if(!isset($counter))
{
$counter = 0;
}
$counter++;
}
//Sorry if the code isn't shown correctly. :P
//对不起,如果代码没有正确显示。:P
//I like this version more, because the counter variable is IN the foreach, and not above.
//我更喜欢这个版本,因为计数器变量在foreach里面,而不是上面。
回答by Victor Langat
Imagine a counter with an initial value of 0.
想象一个初始值为 的计数器0。
For every loop, increment the counter value by 1 using $counter = 0;
对于每个循环,使用以下方法将计数器值加 1 $counter = 0;
The final counter value returned by the loop will be the number of iterations of your for loop. Find the code below:
循环返回的最终计数器值将是 for 循环的迭代次数。找到下面的代码:
$counter = 0;
foreach ($Contents as $item) {
$counter++;
$item[number];// if there are 15 $item[number] in this foreach, I want get the value `: 15`
}
Try that.
试试那个。

