Array et Equivalent DISTINCT de Mysql

Résolu
jdaviaud Messages postés 151 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 8 octobre 2013 - 3 nov. 2004 à 15:41
jdaviaud Messages postés 151 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 8 octobre 2013 - 3 nov. 2004 à 23:50
En fait, j'ai un array principal composé de sous arrays

ex :

$mestableaux = array(
  array(
    'value'   => 'Valeur1',
    'text'    => 'Texte 1',
    'fichier' => 'fichier.jpg',
  ),

  array(
    'value'   => 'Valeur2',
    'text'    => 'Texte 1',
    'fichier' => 'fichier2.jpg',
  ),

  array(
    'value'   => 'Valeur2',
    'text'    => 'Texte 2',
    'fichier' => 'fichier3.jpg',
  ),

)


Donc voici mes questions avec ce tableau :
1- Comment faire pour avoir une liste qui dans ce cas, me retournera "Texte 1" et "Texte 2" soit donc les elements "text" des différents tableaux mais sans doublons

2- Ensuite, je veux pouvoir récupérer tous les elements "fichier" d'un meme "text" donc par ex, pour "Texte 1" il doit donc me retourner "fichier.jpg" et "fichier2.jpg"

Merci d'avance car je n'ai pas beaucoup de connaissance sur les array ne les utilisant pas souvent

Amicalement
Julien

7 réponses

ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008
3 nov. 2004 à 23:32
resalut

bon bin je continue alors
ya aussi array_unique l'idée serait de mettre tes valeurs dans un autre array tu fait un array _unique dessus une bonne boucle sur ma deuxième réponse et hop le tour est jouer....

bon en gros

$i=0;
do{
$new_array[$i]=$mestableaux[$i]['text']/*onmet les variables dans un nouveaux tableaux*/
$i++;
}while($mestableaux[$i]['text'] != '');
$toto = array_unique($new_array[$i]);
//tout est dedoublonner grace a array_unique()
/*ensuite on extrait les valeurs de fichiers pour chaque valeurs texte différentes*/
$i=0;
while($toto[$i]!=''){
echo "on a en variable text $toto[$i] les valeurs de fichiers suivantes :";
foreach($mestableaux as $var){
if($var['text'] == $toto[$i]){
echo "$var['fichier']";
}
}
$i++
}


A mon avis ca doit deja faire une bonne trame...

array_unique prend le tableau array et retourne un nouveau tableau, complètement dédoublonné.

"Aucun de nous ne sait ce que nous savons tous, ensemble."
Lao Tseu inventeur du "copier coller" 8-)
3
ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008
3 nov. 2004 à 21:27
salut

en fait ta double array c rein de plus qu'un tableau bidimensionnel...

alors.....
premiere question :
tu met ca :

$soluce = array_intersect_assoc ($mestableaux[1], $mestableaux[2],$mestableaux[3]);


La fonction retourne un tableau contenant toutes les valeurs de $mestableaux[1] qui sont aussi présentes dans tous les autres arguments $mestableaux[1], ... ca respectent l'ordre induit par les index....

decription de la fonction

"Aucun de nous ne sait ce que nous savons tous, ensemble."
Lao Tseu inventeur du "copier coller" 8-)
0
ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008
3 nov. 2004 à 21:34
question 2:
retourne les elements

foreach($mestableaux as $var){
if($var[text] == 'text'){
echo "$var[fichier]";
}
}

je pense que ca devrait etre pas mal

mais je suis comme toi j'utilise pas trop les array.... :approve)

++

"Aucun de nous ne sait ce que nous savons tous, ensemble."
Lao Tseu inventeur du "copier coller" 8-)
0
jdaviaud Messages postés 151 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 8 octobre 2013
3 nov. 2004 à 23:13
salut,

ton array_intersect_assoc m'a l'air interessant mais d'apres ce que dit nexen, il faut que la paire cle <=> valeur soit la meme dans les deux tableaux mais dans mon exemple :


$mestableaux = array(
array(
'value' => 'Valeur1',
'text' => 'Texte 1',
'fichier' => 'fichier.jpg',
),

array(
'value' => 'Valeur2',
'text' => 'Texte 1',
'fichier' => 'fichier2.jpg',
),

array(
'value' => 'Valeur2',
'text' => 'Texte 2',
'fichier' => 'fichier3.jpg',
),

)



ce que je recherche par exemple, c'est de pouvoir avoir toutes les valeurs "value" uniques ( 2 : "Valeur1" et "Valeur2" ) et ensuite, pour Valeur2, je veux pouvoir avoir les différentes valeurs "text" ( 2 "Text 1" et "Text 2" )

donc ca n'a pas l'air de marcher dans ce cas la

Amicalement
Julien
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jdaviaud Messages postés 151 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 8 octobre 2013
3 nov. 2004 à 23:41
terrible, impecable, c'est exactement ce qu'il me fallait, je connaissais pas cette fonction

Merci

Amicalement
Julien
0
ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008
3 nov. 2004 à 23:44
met moi reponse acceptée je crois que je l'ai bien merité!!! :-p
reponse en temps reel entre mon film du soir et ma douche!!!

++

"Aucun de nous ne sait ce que nous savons tous, ensemble."
Lao Tseu inventeur du "copier coller" 8-)
0
jdaviaud Messages postés 151 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 8 octobre 2013
3 nov. 2004 à 23:50
voila qui est fait ;p
0
Rejoignez-nous