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

  • Автор темы Автор темы avtsasha
  • Дата начала Дата начала

avtsasha

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

Нужно сравнить элементы массива так,
чтобы 1-ый элемент сравнивался с каждым элементом этого же массива, 2-ой точно также и т.д.
 
а что потом надо делать, по результатам сравнения?
 
потом надо кол-во разных эл-ов сохранить в переменную
 
[m]array_unique[/m]
но может потренируешься сделать это сначала ручками.

-~{}~ 15.12.04 16:12:

array_unique поможет если "кол-во разных == кол-во уникальных".
А вообще сделай всё в одном цикле и не мучайся.
 
Это вариант, если не жалко заводить второй массив
Код:
$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++;
}

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