Удаление дублей в массиве

djamali

Новичок
Привет .
У меня есть массив вида
Array(
[0]=>Array([ID]=>10, [NAME]=>Anton),
[1]=>Array([ID]=>12, [NAME]=>Mike),
[2]=>Array([ID]=>52, [NAME]=>Anton),//надо выкинуть
[3]=>Array([ID]=>32, [NAME]=>Alex),
[4]=>Array([ID]=>17, [NAME]=>Anton),//надо выкинуть
[5]=>Array([ID]=>17, [NAME]=>Alex), //надо выкинуть
[6]=>Array([ID]=>17, [NAME]=>Mike) //надо выкинуть
)

Мне надо избавиться от элементов в которых значение NAME повторяется. Делал двойной цикл , но что то не то получается. Буду рад любому совету, чего то вообще голова не варит.
 

baev

‹°°¬•
Команда форума
djamali, читайте в мануале комментарии пользователей к функции array_unique().
 

Baton

Новичок
Элементарно в цикле
PHP:
$array = array(
   0=>Array('ID'=>10, 'NAME'=>'Anton'),
   1=>Array('ID'=>12, 'NAME'=>'Mike'),
   2=>Array('ID'=>52, 'NAME'=>'Anton'),//надо выкинуть
   3=>Array('ID'=>32, 'NAME'=>'Alex'),
   4=>Array('ID'=>17, 'NAME'=>'Anton'),//надо выкинуть
   5=>Array('ID'=>17, 'NAME'=>'Alex'), //надо выкинуть
   6=>Array('ID'=>17, 'NAME'=>'Mike') //надо выкинуть
);

$names = array();

foreach( $array as $k => $v ){
   if( isset( $names[ $v[ 'NAME' ] ] ) ){
      unset( $array[ $k ] );
   }
   else{
      $names[ $v[ 'NAME' ] ] = 1;
   }
}

print_r( $array );
 

djamali

Новичок
я слаб в массивах, всегда их избегаю. надо с этим покончить. спасибо всем.
 

Jon

Новичок
Перебрать массив и все. Создаешь новый с проверкой, скажем in_array

P.s. Привет из ВОЕНМЕХ)
 

Dl

Новичок
Там еще и ID повторяется, непонятно, почему 17-го Alex-а надо выкинуть
 

djamali

Новичок
всем спасибо, я уже сделал. просто я влюблен и голова не соображает))
 

djamali

Новичок
да что там пост, ты еще не видел код))
PHP:
<?//да простит меня господь, за код сей. ибо я влюбленный, не ведал что творил. аминь.
$array=array();
?>

<?foreach($arResult["ITEMS"] as $arItem):?>
	<? $array[]=$arItem; ?> 
<?endforeach;?>	

<?
if($array[0]["NAME"]==$array[1]["NAME"]) { unset($array[1]);}
if($array[0]["NAME"]==$array[2]["NAME"]) { unset($array[2]);}
if($array[0]["NAME"]==$array[3]["NAME"]) { unset($array[3]);}
if($array[0]["NAME"]==$array[4]["NAME"]) { unset($array[4]);}
if($array[0]["NAME"]==$array[5]["NAME"]) { unset($array[5]);}
if($array[0]["NAME"]==$array[6]["NAME"]) { unset($array[6]);}
if($array[0]["NAME"]==$array[7]["NAME"]) { unset($array[7]);}
if($array[0]["NAME"]==$array[8]["NAME"]) { unset($array[8]);}
if($array[0]["NAME"]==$array[9]["NAME"]) { unset($array[9]);}
if($array[0]["NAME"]==$array[10]["NAME"]) { unset($array[10]);}
if($array[0]["NAME"]==$array[11]["NAME"]) { unset($array[11]);}
if($array[0]["NAME"]==$array[12]["NAME"]) { unset($array[12]);}
if($array[0]["NAME"]==$array[13]["NAME"]) { unset($array[13]);}
if($array[0]["NAME"]==$array[14]["NAME"]) { unset($array[14]);}
if($array[0]["NAME"]==$array[15]["NAME"]) { unset($array[15]);}

if($array[1]["NAME"]==$array[0]["NAME"]) { unset($array[0]);}
if($array[1]["NAME"]==$array[2]["NAME"]) { unset($array[2]);}
if($array[1]["NAME"]==$array[3]["NAME"]) { unset($array[3]);}
if($array[1]["NAME"]==$array[4]["NAME"]) { unset($array[4]);}
........................................................................................
около 60 строк))
[PHP]
 

Adelf

Administrator
Команда форума
djamali
А для такого кода есть специальный сайт. govnokod.ru :)
 

Redjik

Джедай-мастер
djamali
за такое уговорил бы руководство, чтобы уволили нафиг
 

michelle

Новичок
djamali

Дорогой друг, я знал что лубофф отупляет, но чтобы до такой степени .......!

Может вложенные циклы чем-нибудь помогут влюбленному! ;-)
 
Сверху