11548 sujets
Bonjour,
PhP dispose de plusieurs fonctions permettant de comparer deux tableaux.
La plus simple dans ton cas est
Conclusion si les deux tableaux sont différents tu le sauras et en prime tu auras les valeurs en causes.
Pour des comparaisons plus précises voir l'objet ARRAY
jp
PhP dispose de plusieurs fonctions permettant de comparer deux tableaux.
La plus simple dans ton cas est
array_diff(array1,array2)
qui va retourner toutes les valeurs de array1 absentes de array2.Conclusion si les deux tableaux sont différents tu le sauras et en prime tu auras les valeurs en causes.
Pour des comparaisons plus précises voir l'objet ARRAY
jp
function compareArray(a1, a2)
{
if (a1.length != a2.length) {
return false;
} else {
for (var a = 0; a < a1.length; ++a) {
if (a1[a] != a2[a]) {
return false;
}
}
}
return true;
}
Après faudrait faire un appel récursif sur les a1[a] et a2[a] s'ils sont du type Array eux même.
Modifié par Olivier (21 May 2005 - 00:11)
function compareArray(a1, a2)
{
if (a1.length != a2.length) {
return false;
} else {
for (var a = 0; a < a1.length; ++a) {
if (is_array(a1[a])) {
if (!is_array(a2[a])) {
return false;
} else {
return compareArray(a1[a], a2[a]);
}
} else if (a1[a] != a2[a]) {
return false;
}
}
}
return true;
}
function is_array(variable)
{
var source = variable.toSource();
return (source.search(/^\[([^,]*,)+[^,]*\]/) != -1);
}
Voilà, y a plus qu'à s'assurer que ça marche pour tous les cas, mais j'ai testé avec des array imbriqués sous plusieurs niveau et ça roule.
Si tu veux des explications, y a qu'à demander.
Pour la foncion is_array, j'ai pris ça sur :
http://www.aidejavascript.com/article30.html
Megalol Olivier...
Hier, je me suis déconnecté pasqu'il y avait un gros orage au-dessus de chez moi, et j'ai déjà grillé une alim, pas deux... lol
Pendant l'orage, j'ai écris sur papier le code d'une nouvelle classe de l'objet Array pour comparer deux tableaux entre eux, puis, quand l'orage est passé, je l'ai codé mais pas envoyé sur le net...
Les grands esprits se rencontrent, nos codes sont quasiment les mêmes...
Sur la page d'exemple, il y a un lien vers le fichier js de la méthode, pour ceux qui veulent pas retaper tout; et tout est expliqué.
Voilà, voilà...
Modifié par Lisarael (21 May 2005 - 10:20)

Hier, je me suis déconnecté pasqu'il y avait un gros orage au-dessus de chez moi, et j'ai déjà grillé une alim, pas deux... lol
Pendant l'orage, j'ai écris sur papier le code d'une nouvelle classe de l'objet Array pour comparer deux tableaux entre eux, puis, quand l'orage est passé, je l'ai codé mais pas envoyé sur le net...
Les grands esprits se rencontrent, nos codes sont quasiment les mêmes...
Sur la page d'exemple, il y a un lien vers le fichier js de la méthode, pour ceux qui veulent pas retaper tout; et tout est expliqué.
Voilà, voilà...
Modifié par Lisarael (21 May 2005 - 10:20)
Lisarael a écrit :
M
Les grands esprits se rencontrent, nos codes sont quasiment les mêmes...
Tu m'etonnes, on est des mega bête

J'ai regardé rapido ton truc, tu gères aussi les array imbriqués ? j'ai pas eu l'impression à première vue, mais j'ai vraiment regardé rapido.
Le faire comme une méthode de l'objet array, c'est pas plus mal oui.
Ma version est sûrement optimisable au niveau de la quantité de code mais j'ai fait ça vite fait.
Si tu veux, t'as qu'à nous mettre ça dans le topic qui est mis en épinglé sur le forum JS, code et scripts utiles.
Tu expliques juste la routine, met le code et renvoi un lien vers ta page. enfin si tu veux.
j'ai pas essayé les tableaux imbriqués...
c'est comme les départementales, j'les aime pas... lol
edit: j'vais rajouter la gestion des tableaux imbriqués, c'est un question de quelques lignes de codes en plus, pis je le mettrai dans le topic en post-it...
edit2: voilà, c'est corrigé, j'ai intégré les tableaux imbriqué, plus qu'à poster le truc dans le post-it...
Modifié par Lisarael (21 May 2005 - 12:23)
c'est comme les départementales, j'les aime pas... lol
edit: j'vais rajouter la gestion des tableaux imbriqués, c'est un question de quelques lignes de codes en plus, pis je le mettrai dans le topic en post-it...
edit2: voilà, c'est corrigé, j'ai intégré les tableaux imbriqué, plus qu'à poster le truc dans le post-it...
Modifié par Lisarael (21 May 2005 - 12:23)