Je retiens les doublons d'un tableau, j'ai utilisé ici un exemple pour la matrice que j'ai testée sur: voici ma fonction: p> Lorsque je l'ai testé sur un tableau avec 299 éléments, il n'a pas fonctionné. P>
li>
second problème est qu'il n'a pas renvoyé le dernier élément du tableau p>
li>
ul>
blockQuote> ce que j'ai essayé: strong> p> Que peut être le problème? P> Merci d'avance. p> p> array_unique ($ array) code>,
[7 6 4 3 3 4 9] code>. P>
alors j'ai eu 2 erreurs principales: H2>
4 Réponses :
Pour conserver le dernier élément lorsque vous utilisez Array_Unique, vous devez inverser le tableau d'abord pour faire d'abord le dernier article.
array(4) { [0] => int(1) // Notice key 1 is missing with value 2 [2] => int(5) [3] => int(2) [4] => int(9) }
C'est une solution, mais comme je l'ai dit ci-dessus, je devrais garder la commande identique, je ne suis pas autorisé à modifier l'ordre des valeurs, il s'agit d'une question dans un test de codingame
Ne semble pas fonctionner pour l'index numérique: - 3v4l.org/dzqnd (BTW Je ne suis pas malade -électeur)
@Anantsingh --- alivetodie qui est parce que avec une matrice indexée, Array_Reverse ne conserve pas la clé. En réalité, cela fonctionne, il conserve la valeur correcte, mais les touches sont réinitialisées. Voir l'exemple ici: 3v4l.org/0b1ko le 2 code> après
5 code> est conservé mais les clés sont réinitialisées
@Anantsingh --- alivetodie, je suppose que mes questions ne sont pas assez claires, je ferai le prochain test, et à ce moment-là, je vais avoir tous les détails et quel code j'ai écrit et quel résultat exactement que j'ai obtenu, d'écrire une question très claire . Merci
@Omarelrafhi que voulez-vous dire avec ordre? Est-ce que ça clés? Il est très important que vous utilisiez le libellé correct ou expliquer en détail ce que vous voulez dire. Parce que la commande et les clés ne sont pas les mêmes.
@Andreas vous avez raison, je n'ai pas fait attention à cela, en réalité, c'est l'ordre des valeurs que je ne peux pas changer. les clés que je peux.
@Omarelrafhi Dans ce cas, ma réponse devrait fonctionner. (L'un d'eux).
Une autre solution pouvant aider, ce que je ne recommande pas est de remplacer la capacité de la mémoire par défaut. Vous pouvez le faire en utilisant ceci: lecture supplémentaire:
http://php.net/memory_limit p> p>
$a=array(7,6,4,3,3,4,9); $count = count($a); $c = []; for($i=0;$i<count($a);$i++){ if(!in_array($a[$i],$c)){ array_push($c,$a[$i]); } } print_r($c);
Votre code fonctionne bien. Je suis donc à 100% sûr que vous pensiez à tort que la dernière valeur est omise. En fait, il est supprimé car il est répété et vous avez demandé à toutes les valeurs dupliquées à supprimer en exécutant array_unique () code>. Pour un test simple exécutez ce code et vérifiez si vous voyez ces problèmes à nouveau.
function rmrepeat ($array) {
$array2 = array_unique($array);
return $array2;
}
$a = [];
for($i=0;$i<1000;$i++){
array_push($a, $i);
}
echo "Before removing duplicates: ", (string)count($a), PHP_EOL;
$a = rmrepeat($a);
echo "After removing duplicates: ", (string)count($a), PHP_EOL;
php.net/manual/fr/funcunk.array-unique.php < / a>?
Utilisez Array_unique pour supprimer la même valeur.
Je l'ai utilisé (je l'ai mentionné ci-dessus), avec tous les $ Sort_Flags aussi.
Pouvez-vous nous montrer votre code s'il vous plaît?
Partagez également quel est le résultat attendu.
@Romainv `fonction rmrepeat ($ array) {$ array2 = array_unique ($ TRAY); retour $ $ Array2; } // Array d'entrée $ A = Array (1, 2, 5, 2, 9); $ newarray = rmrepeat ($ a); "
Testé pour 450 valeurs, fonctionnant bien: - 3v4l.org/rrn50
Le code que vous avez donné fonctionne simplement bien Demo - Quel résultat attendu recherchez-vous exactement?
@jibsteroos Il veut le deuxième
2 code> pour rester et supprimer le premier.
@Anantsingh --- Alivetodie qui est bizarre, je faisais un test de codingame, et je l'ai écrit, il m'a dit que je ne retourne pas la dernière valeur et il ne fonctionne pas sur 299 éléments, et je l'ai testé sur mon ordinateur et travaille bien ... alors peut-être que le test est faux, merci.
@Omarelrafhi, il ne gardera pas le dernier article. Si vous entrez
[2,2] code>, c'est le premier qui est gardé et la seconde qui est supprimée lors de l'utilisation Array_unique telle qu'elle est. Mais si vous inverserez avant Array_unique, vous garderez le dernier
2 code>
@Andreas je sais, mais dans le test, ils ont dit: (L'ordre initial des valeurs doit être conservé)
@Omarelrafhi Si vous inversez un tableau, puis inversez à nouveau, la commande sera conservée.