Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1558 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Dédoublonnage tableau multi avec array_unique() ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Dédoublonnage tableau multi avec array_unique() ?

n°1818496
nycius
Ich liebe dich !
Posté le 28-11-2008 à 16:07:41  profilanswer
 

Salut j'ai un tableau multi qui a la structure ci dessous.
j'aimerai sortir le tableau dédoublonné sur la valeur du champs Price.
 

Code :
  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.             [Price] => 110.00
  6.         )
  7. [1] => Array
  8.         (
  9.             [Price] => 110.00
  10.         )
  11. [2] => Array
  12.         (
  13.             [Price] => 113.00
  14.         )
  15. )


 
QQun aurait une soluce ?

mood
Publicité
Posté le 28-11-2008 à 16:07:41  profilanswer
 

n°1818517
Alisteroid
Posté le 28-11-2008 à 16:18:05  profilanswer
 

Quel est l'utilité d'avoir cette dimension en trop à ton tableau?

n°1818538
nycius
Ich liebe dich !
Posté le 28-11-2008 à 16:26:00  profilanswer
 

J'ai fait simple mais normalement ca donnerai ca :
 

Code :
  1. Array
  2. (
  3. [0] => Array
  4. (
  5.  [Price] => 110.00
  6.  [Name] => Blop
  7. )
  8. [1] => Array
  9. (
  10.  [Price] => 110.00
  11.  [Name] => Gus
  12. )
  13. [2] => Array
  14. (
  15.  [Price] => 113.00
  16.  [Name] => Blup
  17. )
  18. )

n°1818576
Alisteroid
Posté le 28-11-2008 à 16:40:30  profilanswer
 

Solution rapide :o

 
Code :
  1. $a = array(
  2.             array('Price' => 110.00,'Name' => 'Blop'),
  3.             array('Price' => 113.00,'Name' => 'Blup'),
  4.             array('Price' => 110.00,'Name' => 'Blip')
  5.         );
  6.  
  7. $b = array_filter($a,'dedoublonne');
  8.  
  9. function dedoublonne($item)
  10. {
  11.     static $prices = array();
  12.     
  13.     if(!isset($prices[$item['Price']]))
  14.     {
  15.         $prices[$item['Price']] = $item['Price'];
  16.         return true;
  17.     }
  18.     return false;
  19. }
  20.  
  21. /*
  22. Retourne :
  23. Array
  24. (
  25.    [0] => Array
  26.        (
  27.            [Price] => 110
  28.            [Name] => Blop
  29.        )
  30.  
  31.    [1] => Array
  32.        (
  33.            [Price] => 113
  34.            [Name] => Blup
  35.        )
  36. )
  37.  
  38.  
  39. */



Message édité par Alisteroid le 28-11-2008 à 16:41:06
n°1818593
nycius
Ich liebe dich !
Posté le 28-11-2008 à 16:47:47  profilanswer
 

Ca marche impec
merci bcp :)

n°1818602
Alisteroid
Posté le 28-11-2008 à 16:52:12  profilanswer
 

Sans utilisation de fonction native (et plus performant):

Code :
  1. $prices = array();
  2. $nb_elements = count($a);
  3. for($i=0;$i<$nb_elements;$i++)
  4. {
  5.     if(!isset($prices[$a[$i]['Price']]))
  6.     {
  7.         $prices[$a[$i]['Price']] = $a[$i]['Price'];
  8.     }
  9.     else
  10.     {
  11.         unset($a[$i]);
  12.     }
  13. }


C'est un peu moins performant que les deux dernieres solutions en utilisant un foreach, mais on parle d'1 à 2 centièmes de s (pour un total de 0.30s) pour un tableau à 10000 entrées. :D

 

array_filter : 0.31s
for : 0.28s
foreach : 0.32s

 

Bref bench inutile :D


Message édité par Alisteroid le 28-11-2008 à 16:53:25
n°1818606
nycius
Ich liebe dich !
Posté le 28-11-2008 à 16:54:08  profilanswer
 

:D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Dédoublonnage tableau multi avec array_unique() ?

 

Sujets relatifs
servlet, method post et tableau assoTableau multi avec plusieurs donnees
Transformation Tableau en Liste de Données[HTML/Javascript/CSS] [resolu] spoiler une partie de tableau
[Php/Mysql]Effacer ligne d'un tableau de donnéesAjouter une ligne à un tableau en javascript
Problème courant du tableau 2Dpointeur sur un tableau ? est-ce faisable ?
tri d'un tableau 
Plus de sujets relatifs à : Dédoublonnage tableau multi avec array_unique() ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR