Проверка повторяющихся цифр в массиве

TutanXamoN

Новичок
Дык ета не баг. Ет фича) Кто сказал что я выложил готовое?
Там ещё чуток до ума довести надо)
 

amas_mind

Новичок
Mr_Max так вроде не бывает :( нумерация элементов массива начинается с 0 и увеличивается на единицу.
Подскажите так можно делать? $i<sizeof($a)+1; - он ведь захватывает элемент не существующиего элемента.
Я без сорказма, зря вы так.
 

TutanXamoN

Новичок
for($i=1;$i<=sizeof($a);$i++)
{
if($a[$i]==$a[$i-1])
{
$k++;
if($i==sizeof($a))
{
$m=$a[$i-1];
$k++;
echo "Повтор значения $m, $k раз<br>";
$k=0;
}
}
elseif($a[$i]!=$a[$i-1]&&$k!=0)
{
$m=$a[$i-1];
$k++;
echo "Повтор значения $m, $k раз<br>";
$k=0;
}

И фсё

-~{}~ 13.10.07 01:20:

При $a=array (9, 1, 11, 6, 6); не накрывается

И не мешай больше спать)
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
бывает
соответственно с - 1 тоже не всегда работать будет.
поскольку такого ключа может и не быть...

-~{}~ 13.10.07 01:23:

И не мешай больше спать)
Дык спте себе :)

Короче я бы флаг "зажигал" и с ним сверял значение потом, если == то ++

Вот.
 

OTBEPTKA

Новичок
TutanXamoN

При массиве
PHP:
$a=array (0, 2, 5, 1, 1, 2, 2, 2, 3);
Вывод:
Повтор значения 1, 2 раз
Повтор значения 2, 3 раз
че ето 2 - 3 раза то, четыре ..... :D

-~{}~ 15.10.07 14:13:

А нельзя извлеч уникальные, пересортировать по индексам .....

//извлечение уникальных
$a=array_unique($a);
//
//пересортировка по индексам
$a_new = array();
$i = 0;
foreach ($a as $val) {
$a_new[$i] = $val;
++$i;
}
//

....... и шерстить в цикле ? ;)
 

dimagolov

Новичок
amas_mind, почитай в мане какие индексы у массива $a=array (9, 1, 11, 6, 6) и что возвращает sizeof($a).
кроме того, полезно включать вывод онибок и смотреть не просто что "накрываетс медным тазом" а что именно с ним происходит

мда, а задача то имеет смысл только при некоторых ограничениях на индексы массива.
неплохо бы их было явно озвучить, а то уж больно неопределенно получается, особенно для массивов php "соседние элементы". это какие соседние, а какие нет?
 

ustas

Элекомист №1
array $input [, mixed $search_value ]

указывать $search_value в цикле, вернет больше 1, если значения совпадают.
---
мда, на рядом стоящие не пойдет, так проверить на все повторяющие только можно.
тогда цикл
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
das6745
ustas
Топик с начала никто не читает... ;)
 

SelenIT

IT-лунатик :)
Извратной задаче - извратное решение:
PHP:
preg_match_all('/(\b\d+)(,\\1\b)+/', implode(',', $a), $m);
print_r($m[0]); // выдает повторяющиеся числа через запятую
 
Сверху