Сравнение всех элементов массива

avtsasha

Guest
Сравнение всех элементов массива

Нужно сравнить элементы массива так,
чтобы 1-ый элемент сравнивался с каждым элементом этого же массива, 2-ой точно также и т.д.
 

Фанат

oncle terrible
Команда форума
а что потом надо делать, по результатам сравнения?
 

avtsasha

Guest
потом надо кол-во разных эл-ов сохранить в переменную
 

Gas

может по одной?
[m]array_unique[/m]
но может потренируешься сделать это сначала ручками.

-~{}~ 15.12.04 16:12:

array_unique поможет если "кол-во разных == кол-во уникальных".
А вообще сделай всё в одном цикле и не мучайся.
 

rotoZOOM

ACM maniac
Это вариант, если не жалко заводить второй массив
Код:
$arr=array(1,2,3,4,5,6,7,8,9,10,5,4,3,6,6);
$use=array();
foreach ($arr as $el)$use[$el]=1;
$cnt=count($use); // это и есть количество различных элементов
Это вариант, если можно элементы в первоначальном массиве переставить
Код:
sort($arr);
$cnt=0;
for ($i=0;$i<count($arr);$i++){
  if (!$i || $arr[$i]!=$arr[$i-1])$cnt++;
}
Вариантов много.
Для того, чтобы рационально написать твою задачу нужно знать условия: количество эл-тов в массиве, какого типа.
 

avtsasha

Guest
В массиве содержится IP адреса (от 1 до 100 или больше) и нужно узнать кол-во разных
IP адресов
например:
$ip=array('10.0.0.1','10.0.0.2','10.0.0.3','10.0.0.2');
в результате переменная $cip должна быть равна 3
 

Gas

может по одной?
avtsasha
тебе уже ответ дали, осталось прочитать.
 

avtsasha

Guest
я разобрался.
Всем спасибо!
тема закрыта.
 
Сверху