Подсчет повторяющихся значений в цикле.

Dimog

Доброго времени суток, уважаемы форумчане. Вопрос такого свойства.
имеем массив [2,2,2,2,2,1,2,1,2,1]
Необходимо посчитать в цикле сколько раз подряд повторяются 2-ки, считая с первого элемента массива. Т.е. в итоге должно выводиться 5, т.к. с первого элемента у нас 5 двоек подряд. Всю голову сломал. Понимаю, что кому-то это покажется смешно, но я только осваиваю данный язык.
Если не затруднит – помогите, а то у меня не получается никак. Заранее благодарен.

 

MouseZver

где твой код ?
— Добавлено —
ибо во фриланс

 

mkramer

Подсказка: ассоциативные массивы. Читаем

 

Drunkenmunky

PHP:
  1. $i = 0;
  2. $n = 2
  3. foreach($array as $value)
  4. {
  5.   if($value != $n)
  6.    {
  7.     break;
  8.     }
  9.    else
  10.    {
  11.     $i++;
  12.     }
  13. }
  14. echo $i;
 

Drunkenmunky

Вот, кстати, вариант счетчика покороче

PHP:
  1. $i = 0;
  2.  
  3. while(current($array) == 2)
  4. {
  5. $i++;
  6. next($array);
  7. }
  8.  
  9. echo $i;

Но с этим циклом стоит быть настороже. Забудешь сдвинуть указатель и получишь вечный цикл.

 

Dimog

У меня так и вышло. Бесконечно выводил 5-ку.

 

iceblood

У меня один раз выводиться 5

PHP:
  1. <?php
  2.     $array = [2,2,2,2,2,1,2,1,2,1];
  3.     $i = 0;
  4.  
  5.     while(current($array) == 2)
  6.     {
  7.         $i++;
  8.         next($array);
  9.     }
  10.  
  11.     echo $i;
 

Drunkenmunky

А надо сколько?

 

don.bidon

Drunkenmunky

Нет, ему нужны те, что идут только подряд и при этом только сначала.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *