Как удалить повторяющиеся значения из массива в Stack Overflow

Как я могу удалить повторяющиеся значения из массива в PHP?

130

Решение

использование array_unique ().

Пример:

$array = array(1, 2, 2, 3);
$array = array_unique($array); // Array is now (1, 2, 3)
210

Другие решения

//Find duplicates

$arr = array(
'unique',
'duplicate',
'distinct',
'justone',
'three3',
'duplicate',
'three3',
'three3',
'onlyone'
);

$unique = array_unique($arr);
$dupes = array_diff_key( $arr, $unique );
// array( 5=>'duplicate', 6=>'three3' 7=>'three3' )

// count duplicates

array_count_values($dupes); // array( 'duplicate'=>1, 'three3'=>2 )
21

использование array_values(array_unique($array));

array_unique: для уникального массива
array_values: для переиндексации

15

$result = array();
foreach ($array as $key => $value){
if(!in_array($value, $result))
$result[$key]=$value;
}
6

иногда array_unique() это не путь,
если ты хочешь получить уникальные и дублированные предметы

$unique=array("","A1","","A2","","A1","");
$duplicated=array();

foreach($unique as $k=>$v) {

if( ($kt=array_search($v,$unique))!==false and $k!=$kt )
{ unset($unique[$kt]);  $duplicated[]=$v; }

}

sort($unique); // optional
sort($duplicated); // optional

результаты на

array ( 0 => '', 1 => 'A1', 2 => 'A2', ) /* $unique */

array ( 0 => '', 1 => '', 2 => '', 3 => 'A1', ) /* $duplicated */
5

Единственное, что сработало для меня:

$array = array_unique($array, SORT_REGULAR);
4

explode(",", implode(",", array_unique(explode(",", $YOUR_ARRAY))));

Это позаботится о связях ключей и сериализует ключи для получающегося нового массива 🙂

2

Мы можем создать массив такого типа, чтобы использовать это последнее значение, которое будет обновлено до значения столбца или ключа, и мы получим уникальное значение из массива …

$array = array (1,3,4,2,1,7,4,9,7,5,9);
$data=array();
foreach($array as $value ){

$data[$value]= $value;

}

array_keys($data);
OR
array_values($data);
2
По вопросам рекламы [email protected]