valores multidimensional eliminar duplicados array php arrays duplicate-data

valores - eliminar duplicados array multidimensional php



Cómo eliminar valores duplicados de una matriz en PHP (18)

Dependiendo del tamaño de su matriz, he encontrado

$array = array_values( array_flip( array_flip( $array ) ) );

puede ser más rápido que array_unique.

¿Cómo puedo eliminar los valores duplicados de una matriz en PHP?


Eliminar los valores duplicados de una matriz asociativa en PHP.

$arrDup = Array (''0'' => ''aaa-aaa'' , ''SKU'' => ''aaa-aaa'' , ''1'' => ''12/1/1'' , ''date'' => ''12/1/1'' , ''2'' => ''1.15'' , ''cost'' => ''1.15'' ); foreach($arrDup as $k => $v){ if(!( isset ($hold[$v]))) $hold[$v]=1; else unset($arrDup[$k]); }

Matriz ([0] => aaa-aaa [1] => 12/1/1 [2] => 1.15)


Esa es una gran manera de hacerlo. Puede que quieras asegurarte de que su salida vuelva a ser una matriz. Ahora solo muestra el último valor único.

Prueba esto:

$arrDuplicate = array ("","",1,3,"",5); foreach (array_unique($arrDuplicate) as $v){ if($v != "") { $arrRemoved[] = $v; } } print_r ($arrRemoved);


Lo único que funcionó para mí es:

$array = array_unique($array, SORT_REGULAR);


Lo he hecho sin usar ninguna función.

$arr = array("1", "2", "3", "4", "5", "4", "2", "1"); $len = count($arr); for ($i = 0; $i < $len; $i++) { $temp = $arr[$i]; $j = $i; for ($k = 0; $k < $len; $k++) { if ($k != $j) { if ($temp == $arr[$k]) { echo $temp."<br>"; $arr[$k]=" "; } } } } for ($i = 0; $i < $len; $i++) { echo $arr[$i] . " <br><br>"; }


Podemos crear ese tipo de matriz para usar este último valor se actualizará en columna o valor clave y obtendremos un valor único de la matriz ...

$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);


Use array_unique()

Ejemplo:

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


Use array_values(array_unique($array));

array_unique : para array array_values array: para reindexar


a veces array_unique() no es el camino, si quieres obtener elementos únicos Y duplicados ...

$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

resultados en

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


prueba este código corto y dulce -

$array = array (1,4,2,1,7,4,9,7,5,9); $unique = array(); foreach($array as $v){ isset($k[$v]) || ($k[$v]=1) && $unique[] = $v; } var_dump($unique);

Salida -

array(6) { [0]=> int(1) [1]=> int(4) [2]=> int(2) [3]=> int(7) [4]=> int(9) [5]=> int(5) }


se puede hacer a través de la función hice tres funciones duplicadas devuelve los valores que están duplicados en la matriz. segunda función única devuelve solo aquellos valores que son de media simple no repetida en matriz y tercera y función completa devuelve todos los valores pero no se duplican si hay algún valor duplicado lo convierte a solo

function duplicate($arr){ $duplicate; $count=array_count_values($arr); foreach($arr as $key=>$value){ if($count[$value]>1){ $duplicate[$value]=$value; } } return $duplicate; } function single($arr){ $single; $count=array_count_values($arr); foreach($arr as $key=>$value){ if($count[$value]==1){ $single[$value]=$value; } } return $single; } function full($arr,$arry){ $full=$arr+$arry; sort($full); return $full; }

}


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

Esto se ocupará de las asociaciones de claves y serializará las claves para la nueva matriz resultante :-)


if (@!in_array($classified->category,$arr)){ $arr[] = $classified->category; ?> <?php } endwhile; wp_reset_query(); ?>

La primera vez que verifica el valor en la matriz y encuentra el mismo valor, ignóralo


$arrDuplicate = array ("","",1,3,"",5); foreach(array_unique($arrDuplicate) as $v){ if($v != "" ){$arrRemoved = $v; }} print_r($arrRemoved);


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


<?php $arr1 = [1,1,2,3,4,5,6,3,1,3,5,3,20]; print_r(arr_unique($arr1)); function arr_unique($arr) { sort($arr); $curr = $arr[0]; $uni_arr[] = $arr[0]; for($i=0; $i<count($arr);$i++){ if($curr != $arr[$i]) { $uni_arr[] = $arr[$i]; $curr = $arr[$i]; } } return $uni_arr; }


//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 )


function arrayUnique($myArray) { $newArray = Array(); if (is_array($myArray)) { foreach($myArray as $key=>$val) { if (is_array($val)) { $val2 = arrayUnique($val); } else { $val2 = $val; $newArray=array_unique($myArray); $newArray=deleteEmpty($newArray); break; } if (!empty($val2)) { $newArray[$key] = $val2; } } } return ($newArray); } function deleteEmpty($myArray) { $retArray= Array(); foreach($myArray as $key=>$val) { if (($key<>"") && ($val<>"")) { $retArray[$key] = $val; } } return $retArray; }