Problème avec les tableaux (arrays) PHP!!!!
Fermé
Emmash
Messages postés
18
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
8 octobre 2008
-
8 oct. 2008 à 18:34
Emmash - 9 oct. 2008 à 14:24
Emmash - 9 oct. 2008 à 14:24
A voir également:
- Problème avec les tableaux (arrays) PHP!!!!
- Easy php - Télécharger - Divers Web & Internet
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- Citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). ✓ - Forum Logiciels
- À l'aide des tableaux ci-dessous, trouvez le mot dont le code ascii est le suivant : 50 52 4f 4d 45 4e 45 55 52 - Forum C
10 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
8 oct. 2008 à 18:41
8 oct. 2008 à 18:41
Bonsoir,
je ne comprend pas tu veux faire array_merge c a d ajouter (déja la aussi il faut plusieurs paramètres) des intersection de tableaux ?
ensuite pourquoi dans $liste_tableaux_couleur.=$.....
tu mets .=
je ne comprend pas tu veux faire array_merge c a d ajouter (déja la aussi il faut plusieurs paramètres) des intersection de tableaux ?
ensuite pourquoi dans $liste_tableaux_couleur.=$.....
tu mets .=
Emmash
Messages postés
18
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
8 octobre 2008
8 oct. 2008 à 18:51
8 oct. 2008 à 18:51
En fait, dépendamment de ce que l'utilisateur a sélectionnée,
1,2,3 ou x nombre de tableaux sont créés.
Donc dans ma variable $liste_tableaux_couleur, je mémorise tous les noms des tableaux crées...
Ça donnera quelque chose du genre :
$liste_tableaux_couleur=$tab_resultat_couleur0; la première fois qu'on passera dans la boucle
$liste_tableaux_couleur=$tab_resultat_couleur0,$tab_resultat_couleur1; la deuxième fois
etc...
Ensuite tout ce que je voudrais faire ce serait de comparer les valeurs de tous les tableaux
crées pour ne conserver que les données qui sont communes dans tous les tableaux...
Il faudrait que ça donne quelque chose du genre :
$tab_resultat_couleur=array_merge(array_intersect( $tab_resultat_couleur0,$tab_resultat_couleur1,$tab _resultat_couleur2));
Mais le problème c'est qu'en faisant $tab_resultat_couleur=array_merge(array_intersect($liste_tableaux_couleur));
pour aller chercher la liste des tableaux créés, ça ne fonctionne pas puisque la fonction array_intersect s'attend à recevoir 2 paramètres et non un seul... Y'a-t-il moyen d'écrire le contenu de la variable directement?
Merci!!!
Marie-Hélène
1,2,3 ou x nombre de tableaux sont créés.
Donc dans ma variable $liste_tableaux_couleur, je mémorise tous les noms des tableaux crées...
Ça donnera quelque chose du genre :
$liste_tableaux_couleur=$tab_resultat_couleur0; la première fois qu'on passera dans la boucle
$liste_tableaux_couleur=$tab_resultat_couleur0,$tab_resultat_couleur1; la deuxième fois
etc...
Ensuite tout ce que je voudrais faire ce serait de comparer les valeurs de tous les tableaux
crées pour ne conserver que les données qui sont communes dans tous les tableaux...
Il faudrait que ça donne quelque chose du genre :
$tab_resultat_couleur=array_merge(array_intersect( $tab_resultat_couleur0,$tab_resultat_couleur1,$tab _resultat_couleur2));
Mais le problème c'est qu'en faisant $tab_resultat_couleur=array_merge(array_intersect($liste_tableaux_couleur));
pour aller chercher la liste des tableaux créés, ça ne fonctionne pas puisque la fonction array_intersect s'attend à recevoir 2 paramètres et non un seul... Y'a-t-il moyen d'écrire le contenu de la variable directement?
Merci!!!
Marie-Hélène
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
8 oct. 2008 à 19:07
8 oct. 2008 à 19:07
et pourqoui ne pas faire ?
tu auras ainsi un array à deux dimensions
$liste_tableaux_couleur=array(); $liste_tableaux_couleur[]=${"tab_resultat_couleur".$cpt_couleur}
tu auras ainsi un array à deux dimensions
Emmash
Messages postés
18
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
8 octobre 2008
8 oct. 2008 à 19:19
8 oct. 2008 à 19:19
Non c'est quand fait c'est un moteur de recherche pour des images.
J'ai différentes couleurs qui sont donc affichés dans ma page...
Ces couleurs sont mémorisés dans mon $_POST["couleur"] qui est donc le tableau contenant toutes les couleurs cochées
Par la suite, dans une boucle, je parcoure chaque couleur du tableau pour faire une requête et sélectionner les images qui correspondent aux couleurs sélectionnées. Donc, pour chaque couleur, je crée un tableau et c'est pour ça
qu'à chaque fois que je passe dans la boucle je crée un tableau contenant les résultats pour cette couleur : ${"tab_resultat_couleur".$cpt_couleur}... et ce que je veux faire c'est de n'afficher que les images qui contiennent toutes les couleurs donc je place tous les noms des tableaux dans la variable $liste_tableaux_couleur et par la suite, je dois faire un array_intersect pour afficher uniquement les no des images contenu dans tous les tableaux. Donc le tableau à deux dimensions, ça ne règle pas mon problème, car je ne sais jamais combien de tableaux vont avoir été créés.
J'ai différentes couleurs qui sont donc affichés dans ma page...
Ces couleurs sont mémorisés dans mon $_POST["couleur"] qui est donc le tableau contenant toutes les couleurs cochées
Par la suite, dans une boucle, je parcoure chaque couleur du tableau pour faire une requête et sélectionner les images qui correspondent aux couleurs sélectionnées. Donc, pour chaque couleur, je crée un tableau et c'est pour ça
qu'à chaque fois que je passe dans la boucle je crée un tableau contenant les résultats pour cette couleur : ${"tab_resultat_couleur".$cpt_couleur}... et ce que je veux faire c'est de n'afficher que les images qui contiennent toutes les couleurs donc je place tous les noms des tableaux dans la variable $liste_tableaux_couleur et par la suite, je dois faire un array_intersect pour afficher uniquement les no des images contenu dans tous les tableaux. Donc le tableau à deux dimensions, ça ne règle pas mon problème, car je ne sais jamais combien de tableaux vont avoir été créés.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
8 oct. 2008 à 19:25
8 oct. 2008 à 19:25
Ha d'accord mais pourquoi tu fais array_merge ?
devrait te donner un array des couleurs communes
$tab_resultat_couleur=array_intersect($liste_tableaux_couleur);
devrait te donner un array des couleurs communes
Emmash
Messages postés
18
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
8 octobre 2008
8 oct. 2008 à 19:22
8 oct. 2008 à 19:22
$liste_tableaux_couleur c'est seulement une variable pour mémoriser les noms des tableaux crées...
je veux seulement réussir à inscrire tous les noms des tableaux dans la fonction array_intersect
je ne peux pas faire array_intersect($liste_tableaux_couleur), car il voit un seul paramètre et non plusieurs...
je voudrais que ça donne quelque chose du genre : array_intersect($tab_resultat_couleur0,$tab_resultat_couleur1,...)
je veux seulement réussir à inscrire tous les noms des tableaux dans la fonction array_intersect
je ne peux pas faire array_intersect($liste_tableaux_couleur), car il voit un seul paramètre et non plusieurs...
je voudrais que ça donne quelque chose du genre : array_intersect($tab_resultat_couleur0,$tab_resultat_couleur1,...)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Emmash
Messages postés
18
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
8 octobre 2008
8 oct. 2008 à 19:28
8 oct. 2008 à 19:28
Parce que si je fais seulement un array_intersect, ça garde mes index tels quels donc je peux commencer avec l'index 3 au lieu de l'index 0... array_merge permet de réséquencer tous les index des données restantes...
As-tu une idée de comment je peux faire pour mon problème?
As-tu une idée de comment je peux faire pour mon problème?
Emmash
Messages postés
18
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
8 octobre 2008
8 oct. 2008 à 19:29
8 oct. 2008 à 19:29
Et puis non array_intersect($liste_tableaux_couleur) ne fonctionne pas, car il doit y avoir au moins 2 tableaux et là il comprend pas qu'il doit lire le contenu de la variable. Il utilise $liste_tableaux_couleur en pensant que c'est le nom du tableau en question.
Utilisateur anonyme
8 oct. 2008 à 19:30
8 oct. 2008 à 19:30
Bonsoir,
je ne vois pas bien ce que vous souhaitez faire mais en lisant tout j'ai une idée qui pourrait peut être vous satisfaire.
au moment de la création de tableau vous créez un tableau donc le premier indice est la couleur
$tableau[couleur]
puis en second indice un rang 1,2,3 pour chaque ilage de cette couleur et en indice 3 le nom ou le numéro de l'image.
si j'ai rien compris ne m'en tenez pas rigueur.
cordialement
je ne vois pas bien ce que vous souhaitez faire mais en lisant tout j'ai une idée qui pourrait peut être vous satisfaire.
au moment de la création de tableau vous créez un tableau donc le premier indice est la couleur
$tableau[couleur]
puis en second indice un rang 1,2,3 pour chaque ilage de cette couleur et en indice 3 le nom ou le numéro de l'image.
si j'ai rien compris ne m'en tenez pas rigueur.
cordialement
Emmash
Messages postés
18
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
8 octobre 2008
8 oct. 2008 à 20:22
8 oct. 2008 à 20:22
Le problème c'est qu'on ne peut pas faire de array_intersect dans le même tableau, il faut absolument avoir au moins deux tableaux en paramètre.
Emmash
Messages postés
18
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
8 octobre 2008
8 oct. 2008 à 20:35
8 oct. 2008 à 20:35
Je veux juste trouver une manière de faire afficher le contenu de ma variable $liste_tableaux_couleur dans ma fonction
array_intersect() pour que ça donne quelque chose comme array_intersect($tableau1,$tableau2,$tableau3...)... tous les noms des tableaux se trouvent dans ma variable $liste_tableaux_couleur mais je ne peux pas faire array_intersect($liste_tableaux_couleur), car il faut au moins deux paramètres, y'a-t-il moyen d'écrire les valeurs de ma variable directement entre les parenthèses de la fonction????
Merci,
Marie-Hélène
array_intersect() pour que ça donne quelque chose comme array_intersect($tableau1,$tableau2,$tableau3...)... tous les noms des tableaux se trouvent dans ma variable $liste_tableaux_couleur mais je ne peux pas faire array_intersect($liste_tableaux_couleur), car il faut au moins deux paramètres, y'a-t-il moyen d'écrire les valeurs de ma variable directement entre les parenthèses de la fonction????
Merci,
Marie-Hélène
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
9 oct. 2008 à 09:46
9 oct. 2008 à 09:46
Tu peux peut être essayer de leurrer la fonction
$array_couleurs=array("bleu","jaune","vert", etc..); //dans cet array tu mets toutes tes couleurs possibles array_intersect($liste_tableaux_couleur,$array_couleurs);