уникальность элементов массива

lem

Новичок
уникальность элементов массива

Привет всем.
Есть ассоциативный массив, типа:
$array = array("1" => 3, "2" => 1, "5" => 7, "3" => 2, "8" => 1);

Требуется реализовать функцию (просто кусок кода - не важно), которая бы что-то писала, если бы находила в масиве одинаковые значения.

Пробовал такую конструкцию:

PHP:
$length = count($array);

for( $i=1 ; $ i<= $length ; $i++ ) {
			for( $j=1 ; $j <= $length ; $j++ ) {
				if ( $array[$j] == $array[$i] && $j != $i ) echo "Есть одинаковые значения!";
			}
		}
Она не работает. Как я понял, это из-за "особенности" ключей ассоц. массива. Я заметил, что такая конструкция, помимо сущ. ключей перебирает ещё и что-то вроде: КЛЮЧ "7", у кторого значение "" и, например, ключ "4", у котрого такое же значение (т.к. их вообще нет в массиве).


Затем поробовал конструкцию:

PHP:
$i = 0;
	foreach ($array as $search) {
	$j=0;
		foreach ($array as $current) {
			if ( $search == $current && $j != $i ) echo "Есть одинаковые значения!";
		$j++;
		}
	$i++;
	}
И она не верно пашет :(, т.к. по идее после вложенного foreach требуется хороший такой reset($array), но если я его сделаю, то и внешний цикл пойдёт с нуля. Кароче, у кого-нибудь есть наработки по поиску дупликатов в массивах?
 

zerkms

TDD infected
Команда форума
$array = array("1" => 3, "2" => 1, "5" => 7, "3" => 2, 7);
echo ($array === array_unique($array)) ? 'нет дубликатов' : 'есть дубликаты';
 

NewStoic

Новичок
А то же самое для многомерных массивов как реализовать?
К примеру
big = array(array(1,2,3), array(3,2,3),array(1,3,3));

Если, анпример, первый элемент у вложенных массивов неуникален, то как удалить весь массив?
 
Сверху