Подсчитать количество итераций в цикле foreach - PullRequest
55 голосов
/ 03 июня 2011

Как рассчитать, сколько элементов в foreach?

Я хочу подсчитать общее количество строк.

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

Спасибо.

Ответы [ 9 ]

107 голосов
/ 03 июня 2011

Прежде всего, если вы просто хотите узнать количество элементов в массиве, используйте count.Теперь, чтобы ответить на ваш вопрос ...

Как рассчитать, сколько элементов в foreach?

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

Вы также можете посмотреть ответы наздесь:

42 голосов
/ 03 июня 2011

Вам не нужно делать это в foreach.

Просто используйте count($Contents).

16 голосов
/ 03 июня 2011
sizeof($Contents);

или

count($Contents);
14 голосов
/ 16 декабря 2013
foreach ($Contents as $index=>$item) {
  $item[$index];// if there are 15 $item[number] in this foreach, I want get the value : 15
}
4 голосов
/ 03 июня 2011

Есть несколько способов справиться с этим.

Вы можете установить счетчик перед 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
}
1 голос
/ 27 мая 2015

Попробуйте:

$counter = 0;
foreach ($Contents as $item) {
          something 
          your code  ...
      $counter++;      
}
$total_count=$counter-1;
1 голос
/ 10 сентября 2013
foreach ($array as $value)
{       
    if(!isset($counter))
    {
        $counter = 0;
    }
    $counter++;
}

// Извините, если код не отображается правильно.: P

// Мне больше нравится эта версия, потому что переменная счетчика находится в foreach, а не выше.

1 голос
/ 03 июня 2011
$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
0 голосов
/ 05 октября 2016

Вы можете сделать sizeof($Contents) или count($Contents)

также это

$count = 0;
foreach($Contents as $items) {
  $count++;
  $items[number];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...