Array_diff avec des tableaux à 2 dimensions

Array_diff avec des tableaux à 2 dimensions - PHP - Programmation

Marsh Posté le 02-04-2008 à 09:29:04    

Bonjour,
 
J'ai un petit problème pour trouver la différence entre 2 tableaux à 2 dimensions.
 
 
Par exemple si j'ai mes 2 tableaux suivants :

Code :
  1. array(
  2. array("tata", 123),
  3. array("toto", 456),
  4. array("titi", 789),
  5. array("tutu", 147),
  6. );
  7. array(
  8. array("tutu", 456),
  9. array("toto", 456),
  10. array("tata", 132)
  11. );


 
Je voudrais qu'il me ressort uniquement si je compare le premier tableau avec le deuxième

Code :
  1. array(
  2. array("titi", 789),
  3. array("tutu", 147),
  4. );


 
J'ai essayé d'utilisé une fonction de callback via la fonction "array_udiff" mais je n'arrive à faire ressortir le résultat voulu.
 
Voici ce que j'ai fait:

Code :
  1. function callback_udiff ( $a, $b ) {
  2. if ( array_diff($a, $b) )
  3.  return 1;
  4. else
  5.  return 0;
  6. }
  7. $diff1 = array_udiff($result1, $result2, "callback_udiff" );


 
Est-ce qu'il est possible de trouver la différence via une fonction de callback ou alors je dois parcourir mes 2 tableaux le faire ?
 
Merci pour votre aide.  :jap:

Reply

Marsh Posté le 02-04-2008 à 09:29:04   

Reply

Marsh Posté le 02-04-2008 à 09:39:09    

kyodenball a écrit :


Code :
  1. array(
  2. array("tata", 123),
  3. array("toto", 456),
  4. array("titi", 789),
  5. array("tutu", 147),
  6. );
  7. array(
  8. array("tutu", 456),
  9. array("toto", 456),
  10. array("tata", 132)
  11. );


Je voudrais qu'il me ressort uniquement si je compare le premier tableau avec le deuxième

Code :
  1. array(
  2. array("titi", 789),
  3. array("tutu", 147),
  4. );



je comprends pas le résultat :/ :/ :/
A la limite, "titi" ok il est présent dans tableau 1 mais pas dans 2.
Pas contre tutu il est présent dans les 2, certes avec 2 valeurs différentes mais comme tata ...
Donc c'est quoi ta méthode pour savoir lesquels garder?
 
Par ailleur, ne pourrais-tu pas utiliser des tableaux associatifs? Ama, ça simplifierait grandement ton problème.


---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 02-04-2008 à 09:48:06    

Je me suis trompé pour la valeur.

kyodenball a écrit :

Bonjour,
 

Code :
  1. array(
  2. array("tata", 123),
  3. array("toto", 456),
  4. array("titi", 789),
  5. array("tutu", 147),
  6. );
  7. array(
  8. array("tutu", 456),
  9. array("toto", 456),
  10. array("tata", 123)
  11. );


 
Je voudrais qu'il me ressort uniquement si je compare le premier tableau avec le deuxième

Code :
  1. array(
  2. array("titi", 789),
  3. array("tutu", 147),
  4. );




 
Pour être plus exact j'ai plutot des tableaux de la forme suivante :  
 

Code :
  1. array(
  2. array( "id" => "tata", "valeur" => 123),
  3. array( "id" => "toto", "valeur" => 456),
  4. array( "id" => "titi",   "valeur" => 789),
  5. array( "id" => "tutu", "valeur" => 147),
  6. );
  7. array(
  8. array( "id" => "tutu", "valeur" => 456),
  9. array( "id" => "toto", "valeur" => 456),
  10. array( "id" => "tata", "valeur" => 123)
  11. );


 
Ce que je veux c'est que si un de mes "sous-tableau" n'est pas présent dans l'autre tableau ou qu'il est différent soit considérer comme différent.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed