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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Différence entre les valeurs de deux tableaux

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Différence entre les valeurs de deux tableaux

n°1625995
cleanx
Posté le 17-10-2007 à 22:22:10  profilanswer
 

Plop !
 
Etant une pine en ce qui concerne la manipulation des tableaux, j'aurais besoin de votre aide :D  
 
J'aimerais comparer les valeurs de deux tableaux et extraire uniquement celles qui sont différentes dans un nouveau tableau.  
Pour être plus concret :
 
Mon premier tableau :
tableau1[0] = toto
tableau1[1] = zozo
tableau1[2] = jojo  
 
Mon deuxième tableau :
tableau2[0] = toto
tableau2[1] = zorglubator
tableau2[2] = zozo
tableau2[3] = jojo
 
Le tableau de sortie que j'aimerais :
intrus[0] = zorglubator
 
 
Autre exemple :  
 
Mon premier tableau :
tableau1[0] = toto
tableau1[1] = zozo
tableau1[2] = jojo  
tableau1[3] = popo  
 
Mon deuxième tableau :
tableau2[0] = toto
tableau2[1] = zorglubator
tableau2[2] = jojo
 
Le tableau de sortie que j'aimerais :
intrus[0] = zorglubator
intrus[1] = popo
intrus[2] = zozo
 
 
Je pense que c'est assez clair. Est-ce que je peux utiliser array_diff() pour arriver à mes fins ? (ai la flemme de faire du testing :whistle: )
 
Merchi.

mood
Publicité
Posté le 17-10-2007 à 22:22:10  profilanswer
 

n°1626074
mIRROR
Chevreuillobolchévik
Posté le 18-10-2007 à 01:30:20  profilanswer
 

vla le "testing" [:pingouino]


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
n°1626126
micfont999
Simplement Moi
Posté le 18-10-2007 à 09:03:59  profilanswer
 

feignasse ...

n°1626306
cleanx
Posté le 18-10-2007 à 13:10:57  profilanswer
 

Rohhh mais qu'ils sont gentils. Ca va j'ai compris, vais faire ma fonction comme un grand. Je la posterai au cas où quelqu'un a besoin de la meme chose que moi (ça s'appelle l'entre-aide...)
 
A toute !

n°1626307
did-54
Posté le 18-10-2007 à 13:13:11  profilanswer
 

Ouais et faire les choses dont on a besoin ca s'appelle travailler.

n°1626315
micfont999
Simplement Moi
Posté le 18-10-2007 à 13:24:32  profilanswer
 

euh on est censé avoir des remords? tu nous donne le nom de la fonction que tu pourrais utiliser, mais tu nous claque que t'a la flemme de tester? et on dois ce sentir coupable de pas te dire, attend attend je vais le faire à ta place... -_-
et bin

n°1626317
Alisteroid
Posté le 18-10-2007 à 13:26:27  profilanswer
 

Le pire c'est qu'il aurait eu le temps de tester ça 5 fois pendant le temps qu'il a prit pour écrire ce sujet .
 
Je comprends pas la  [:noxauror]

n°1626320
micfont999
Simplement Moi
Posté le 18-10-2007 à 13:27:08  profilanswer
 

mdr +1

n°1626721
cleanx
Posté le 18-10-2007 à 18:12:56  profilanswer
 

L'idée de base, ce n'était pas que vous testiez à ma place, mais c'était surtout de savoir si y avait une fonction préexistente qui pourrait me donner ce que je cherche.
Si je n'avais pas mis ma dernière phrase (entre parenthèses en plus...), vous n'auriez pas répondu comme ça. Bonjour la focalisation, faut vous détendre les gars.
 
Là je suis en train de chercher l'algo dont j'ai besoin, je ne vous demande rien il me semble. De toute façon après vos réactions ça ne me donne pas envie de le faire.
 
Bon vent.

n°1626893
cleanx
Posté le 19-10-2007 à 06:34:39  profilanswer
 

Si jamais, pour ceux à qui ça servirait :  
 

Code :
  1. <?php
  2. $idList[0] = "1";
  3. $idList[1] = "2";
  4. $idList[2] = "3";
  5. $idExtract[0] = "1";
  6. $idExtract[1] = "2";
  7. $idExtract[2] = "4";
  8. $k = 0;
  9. for($i = 0; $i < count($idExtract); $i++){
  10. for($j = 0; $j < count($idList); $j++){
  11.   if($idExtract[$i] == $idList[$j]){
  12.  $egal = "1";
  13. }
  14. }
  15. if(!isset($egal)){
  16.   $newID[$k] = $idExtract[$i];
  17.   $k++;
  18. }
  19. unset($egal);
  20. }
  21. // Testing
  22. if(!isset($newID)){
  23. $newID = "pas d'élément différent !";
  24. }
  25. echo "idExtract :<br />";
  26. print_r($idExtract);
  27. echo "<br /><br />idList :<br />";
  28. print_r($idList);
  29. echo "<br /><br />idNew :<br />";
  30. print_r($newID);
  31. ?>


 
ATTENTION: la différence peut uniquement être dans le tableau idExtract.

Message cité 1 fois
Message édité par cleanx le 19-10-2007 à 06:38:08
mood
Publicité
Posté le 19-10-2007 à 06:34:39  profilanswer
 

n°1626975
anapajari
s/travail/glanding on hfr/gs;
Posté le 19-10-2007 à 09:57:52  profilanswer
 

cleanx a écrit :

Si jamais, pour ceux à qui ça servirait :

Code :
  1. <?php...


ATTENTION: la différence peut uniquement être dans le tableau idExtract.


la même chose en une ligne, pour ceux à qui ça servirait et qui voudraient le faire proprement:

Code :
  1. $idList[0] = "1";
  2. $idList[1] = "2";
  3. $idList[2] = "3";
  4. $idExtract[0] = "1";
  5. $idExtract[1] = "2";
  6. $idExtract[2] = "4";
  7. print_r(array_values(array_diff($idExtract, array_intersect($idList,$idExtract)));

Message cité 1 fois
Message édité par anapajari le 19-10-2007 à 09:58:06
n°1626987
micfont999
Simplement Moi
Posté le 19-10-2007 à 10:14:45  profilanswer
 

anapajari a écrit :


la même chose en une ligne, pour ceux à qui ça servirait et qui voudraient le faire proprement:

Code :
  1. $idList[0] = "1";
  2. $idList[1] = "2";
  3. $idList[2] = "3";
  4. $idExtract[0] = "1";
  5. $idExtract[1] = "2";
  6. $idExtract[2] = "4";
  7. print_r(array_values(array_diff($idExtract, array_intersect($idList,$idExtract)));



 
 :whistle:  

n°1627045
cleanx
Posté le 19-10-2007 à 11:15:30  profilanswer
 

Bande d'enfoirés :o  
 
Il est très propre mon code d'abord :D

n°1627048
micfont999
Simplement Moi
Posté le 19-10-2007 à 11:17:03  profilanswer
 

hey oh moi j'ai rien dis :D

n°1627052
cleanx
Posté le 19-10-2007 à 11:19:21  profilanswer
 

T'as oublié une parenthèse de fermeture si jamais.  :whistle:
 

Code :
  1. print_r(array_values(array_diff($idExtract, array_intersect($idList,$idExtract))));


Message édité par cleanx le 19-10-2007 à 11:20:23
n°1627065
cleanx
Posté le 19-10-2007 à 11:24:13  profilanswer
 

Et puis ch'uis pas "nain génieur nain formaticien" (cf. profil anapajari) qui passe sa vie sur PHP moi, mais autodidacte. :kaola:  :o  :D

Message cité 2 fois
Message édité par cleanx le 19-10-2007 à 11:25:08
n°1627072
micfont999
Simplement Moi
Posté le 19-10-2007 à 11:31:10  profilanswer
 

chu pas nain génieur nain formaticien non plus ..
moi c'est le chez les nains génieurs multimédia que je suis :)

n°1627074
mIRROR
Chevreuillobolchévik
Posté le 19-10-2007 à 11:32:20  profilanswer
 

cleanx a écrit :

Et puis ch'uis pas "nain génieur nain formaticien" (cf. profil anapajari) qui passe sa vie sur PHP moi, mais autodidacte. :kaola:  :o  :D


 
si tu commences a insulter tu vas te faire des ennemis :o


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
n°1627075
anapajari
s/travail/glanding on hfr/gs;
Posté le 19-10-2007 à 11:32:58  profilanswer
 

cleanx a écrit :

Bande d'enfoirés :o


T'es gentil mais on va rester poli [:w3c compliant]

cleanx a écrit :

Il est très propre mon code d'abord :D


Non [:spamafote]
En autre, Tu fais i*j itérations alors q'une grande partie d'entre elles est non nécessaire...
Un exemple, tableau1  = [1 ... 10000] et tableau2[1... 10000]
Bin à ta 1ere itération pour tester le 1, 9999 itérations de j inutiles.
Un break ne serait vraiment pas superflu.

 
cleanx a écrit :

Et puis ch'uis pas "nain génieur nain formaticien" (cf. profil anapajari) qui passe sa vie sur PHP moi, mais autodidacte. :kaola:  :o  :D


A bin alors t'as le droit ...

Message cité 1 fois
Message édité par anapajari le 19-10-2007 à 11:34:08
n°1627169
cleanx
Posté le 19-10-2007 à 13:14:40  profilanswer
 

anapajari a écrit :


T'es gentil mais on va rester poli [:w3c compliant]


 
On dirait que vous ne connaissez décidemment pas le second degré sur ce forum... Vais apprendre à m'abstenir.
 

anapajari a écrit :


Non [:spamafote]
En autre, Tu fais i*j itérations alors q'une grande partie d'entre elles est non nécessaire...  
Un exemple, tableau1  = [1 ... 10000] et tableau2[1... 10000]
Bin à ta 1ere itération pour tester le 1, 9999 itérations de j inutiles.  
Un break ne serait vraiment pas superflu.
 


 
Bah mes tableaux ne dépasseront jamais quelques dizaines de valeurs [:spamafote] . M'enfin je prends note de la recommandation. N'ayant jamais suivi de cours d'algo, faut pas m'en vouloir si l'optimisation n'est pas mon fort  :sweat:  .
 

anapajari a écrit :


A bin alors t'as le droit ...


 
En effet, c'est mon choix.


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

  [PHP] Différence entre les valeurs de deux tableaux

 

Sujets relatifs
[PHP et phpToPDF] utilisation de Cellfaire la somme des valeurs négatives dans une plage variable
PHP[SQL]Plusieurs valeurs pour une même colonne
Bons bouquins sur PHP, MySQL, XML, AJAX, MERISE ?[Résolu] PHP en ligne de commande et les includes
Un truc étrange... Différence entre Windows et Linux[PHP + SHELL] impossible d'exécuter un shell dans lighttpd
[PHP] WordPress - pages via le moteur de blog plus personnalisable[PHP] Variable
Plus de sujets relatifs à : [PHP] Différence entre les valeurs de deux tableaux


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