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;
}