Comment puis-je supprimer les valeurs en double d'un tableau en PHP?Comment faire pour supprimer les valeurs en double d'un tableau en PHP
Répondre
Utilisez array_unique().
Exemple:
$array = array(1, 2, 2, 3);
$array = array_unique($array); // Array is now (1, 2, 3)
Je l'ai fait sans utiliser la fonction.
$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>";
}
explode(",", implode(",", array_unique(explode(",", $YOUR_ARRAY))));
Cela va prendre soin des principales associations et sérialiser les clés du nouveau tableau résultant :-)
Quel serait l'effet de 'explode (", "$ YOUR_ARRAY)' quand '$ YOUR_ARRAY' est 'array (" 1 "," 2 "," 3 ")'? – kiamlaluno
@kiamlaluno - :) et la réponse est: ** Attention: explode() s'attend à ce que le paramètre 2 soit une chaîne, tableau donné en ... en ligne .... ** –
@JesseChisholm Oui, c'était le point, mais personne n'a remarqué le code, apparemment. – kiamlaluno
$array = array("Ram","Thiru","Ram","Thiraviya");
$array = array_unique($array);
Sortie:
"Ram", "Thiru", "Thiraviya"
Ceci est un doublon totalement inutile de la réponse acceptée de * 2008 *. –
parfois array_unique()
est pas le chemin, si vous voulez obtenir des objets uniques et dupliquées ...
$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
résultats sur
array (0 => '', 1 => 'A1', 2 => 'A2',) /* $unique */
array (0 => '', 1 => '', 2 => '', 3 => 'A1',) /* $duplicated */
$arrDuplicate = array ("","",1,3,"",5);
foreach(array_unique($arrDuplicate) as $v){
if($v != ""){$arrRemoved = $v; }}
print_r($arrRemoved);
Guys ce serait une façon plus intelligente de supprimer les doublons .......... – user1045247
Cela n'explique vraiment rien, et il ne semble pas être "plus intelligent". – Sven
Vous pouvez toujours expliquer pourquoi en éditant votre propre message, il suffit de cliquer sur le lien "modifier" à la fin de votre réponse. Je suggère également que vous jetez un oeil à la FAQ: http://stackoverflow.com/faq – ForceMagic
//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)
C'est une excellente façon pour le faire. Peut-être que vous voulez vous assurer que sa sortie est à nouveau un tableau. Maintenant vous montrez seulement la dernière valeur unique.
Essayez ceci:
$arrDuplicate = array ("","",1,3,"",5);
foreach (array_unique($arrDuplicate) as $v){
if($v != "") { $arrRemoved[] = $v; }
}
print_r ($arrRemoved);
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;
}
essayer ce court & Code doux -
$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);
Sortie -
array(6) {
[0]=>
int(1)
[1]=>
int(4)
[2]=>
int(2)
[3]=>
int(7)
[4]=>
int(9)
[5]=>
int(5)
}
Pouvez-vous m'expliquer, comment ce code fonctionne? –
Abuser des opérateurs booléens pour un flux de contrôle comme celui-ci est inutilement confus. Utilisez simplement 'if'. –
i t peut être fait par la fonction i fait trois fonctions duplicate renvoie les valeurs qui sont dupliquées dans le tableau .second fonction single return seules les valeurs qui sont simples ne sont pas répétées dans le tableau et troisième et pleine fonction retournent toutes les valeurs mais pas dupliquées si une valeur est dupliqués il le convertir en single
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;
}
}
en fonction de la taille de votre tableau, je l'ai trouvé
$array = array_values(array_flip(array_flip($array)));
peut être plus rapide que array_unique.
Plus d'informations sur ce qui se passe ici et serait-il plus rapide avec un tableau plus grand ou plus petit. –
Le double retournement va supprimer les valeurs dupliquées, car une clé ne peut pas exister deux fois, sinon elle est écrasée. Si une valeur est dupliquée et que le tableau est retourné, la dernière occurrence (je suppose) sera la valeur de la clé. – Goldentoa11
En PHP 7, j'ai remarqué que retourner un tableau multidimensionnel plus d'une fois peut réorganiser les éléments du tableau de façon inattendue. –
La seule chose qui a fonctionné pour moi est:
$array = array_unique($array, SORT_REGULAR);
La fonction array_unique fera pour vous. Vous avez juste besoin d'ajouter le drapeau SORT_REGULAR:
$items_thread = array_unique($items_thread, SORT_REGULAR);
<?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;
}
Utilisez array_values(array_unique($array));
array_unique
: pour un tableau unique, array_values
: pour la réindexation
if (@!in_array($classified->category,$arr)){
$arr[] = $classified->category;
?>
<?php } endwhile; wp_reset_query(); ?>
première valeur de contrôle de temps dans le tableau et trouvé même valeur ignorer
Nous pouvons créer ce type de tableau à utiliser cette dernière valeur sera mise à jour dans la colonne ou valeur de clé et nous obtenir une valeur unique à partir du tableau ...
$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);
Pour supprimer la valeur double de tableau, vous pouvez utiliser array_unique ($ your_array) fonction de PHP
Supprimer les valeurs dupliquées d'un tableau associatif 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]);
}
Array ([0] => aaa-aaa [1] => 12/1/1 [2] => 1,15)
$result = array();
foreach ($array as $key => $value){
if(!in_array($value, $result))
$result[$key]=$value;
}
- 1. Comment faire pour supprimer les valeurs en double d'un tableau en PHP et compter l'occurrence?
- 2. Comment détecter les valeurs en double dans un tableau PHP?
- 3. Comment supprimer des éléments en double d'un tableau en Perl?
- 4. Comment rechercher un tableau pour plusieurs valeurs en PHP?
- 5. supprimer les lignes en double
- 6. C#: Supprimer les valeurs en double du dictionnaire?
- 7. Comment ré-indexer les valeurs d'un tableau en PHP?
- 8. Comment vérifier les fichiers en double en php?
- 9. Fusionner, puis supprimer les entrées en double
- 10. Unix outil pour supprimer les lignes en double d'un fichier
- 11. Javascript en PDF double valeurs
- 12. Conversion de tableau double en tableau IComparable
- 13. pour imprimer les valeurs d'un tableau après l'extraction du tableau en php
- 14. Comment faire pour supprimer en toute sécurité les valeurs orphelines dans le registre de Windows?
- 15. supprimons les valeurs en double dans le groupe, rapports SSRS
- 16. Comment puis-je supprimer les lignes en double d'un fichier?
- 17. double $ déclaration en php
- 18. Comment puis-je supprimer les doublons dans un tableau d'objets en PHP?
- 19. Comment supprimer des nœuds XML en double en utilisant XSLT
- 20. Comment supprimer des noeuds en double en utilisant XSLT?
- 21. Comment puis-je trouver des entrées en double et supprimer les plus anciennes en SQL?
- 22. Comment supprimer des données en double dans SQL Server?
- 23. Comment faire une boucle de tableau plus rapide en PHP
- 24. Convertir les valeurs du dictionnaire en tableau
- 25. Comment faire la distinction entre les cookies en double?
- 26. Comment faire pour supprimer une valeur de Registre en C#
- 27. Comment faire pour supprimer un morceau de balises HTML dans une page HTML en utilisant PHP
- 28. Comment puis-je supprimer les valeurs indésirables du début d'un tableau en Perl?
- 29. C# Enumérations et valeurs en double - dangers?
- 30. Comment aplatir un tableau associatif dans un tableau avec seulement des valeurs en PHP?
@Ian - 'Notez que array_unique() est –
Ce qui précède conservera les clés des éléments. Si vous voulez les réindexer, appliquez en plus array_values: http://www.php.net/manual/fr/function.array-values.php – CodeVirtuoso
perfect ....... 'array_values (array_unique ($ array)) 'fait la chose parfaite pour moi. Merci @Freelancer –