IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Traitement de données dans un Array


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 24
    Points : 17
    Points
    17
    Par défaut [Tableaux] Traitement de données dans un Array
    Hello,

    J'ai besoin d'aide je suis entrain de traiter des données à la sortie de ma bdd.

    Voilà la marche à suivre que j'ai écrite, je bloque sur un point..

    récuperer les données à l'aide de d'une requète sql, puis une fois les données récup dans la variable autor_list j'aimerai la traiter dans un foreach et faire un explode de chaque données pour les enregistrer dans un second tableau.

    Une fois le second tableau mis en place, je dois traiter toutes les entrée et les mettre dans l'ordre alphabetique (c'est là que je bloque..).

    ps: pas besoin de me dire de mettre un ORDER BY dans la requète, car plusieurs auteurs peuvent être dans une même entrée et c'est le but de l'expolde dans le foreach.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $author_list --> tableau avec toutes les valeurs à la sortie de la bdd
    $tab=array();
    foreach ($author_list as $k){
    $tab = explode(",", $k); 
    //Toute les données exploser sous maintenant inscrite dans le second tableau
    }
     
    // ---> ICI <--- Comment faire pour mettre dans un ordre alphabetique mon Array $tab
    Merci d'avance,
    Moi!

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    La fonction sort() devrait faire ce que tu souhaites.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    merci, une simple fonction..lol

    Problème avec le deuxième tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    $author_list // tableau contenant champs de la requete.
    $tab=array();
     
    foreach ($author_list as $author){
    	$tab = explode(",", $author); 
    }
    sort($tab);
    foreach($tab as $ta){
    	echo $ta."<br/>";
    }
     
    echo "<pre>";
    var_dump($tab);
    echo "</pre>";
    Il ne m'affiche uniquement array.. dans le foreach et le var_dump..
    Je bloque, quelqu'un pour m'aider ?

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Voilà je bloque sur l'écriture du second tableau.
    Quelqu'un pourrais m'expliquer pourquoi lorsque j'inscri dans mon $tab
    les valeurs les une après les autres à l'aide du foreach il m'empeche d'en ajouter plusieur à la fois lors d'un tour de boucle à l'aide du explode..

    Je m'y prend mal surement.. Quelque pour m'orienter dans la bonne direction ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $tab=array();
    $x=0;
    foreach ($author_list as $author){
    	$tab[$x]= explode(",", $author); 
    	$x++;
    }
     
     
    echo "<pre>";
    var_dump($tab);
    echo "</pre>";

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 21
    Points : 25
    Points
    25
    Par défaut
    je viens d'essayer ton code et ça marche chez moi.
    Le problème vient peut être de ta requete? Peux tu poster le code de ta requete pour voir?

    et un var_dump de $author_list te donne quoi?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $author_sql = "SELECT `lf_all_author` FROM `product_list` ORDER BY `lf_all_author`";
     
    $author_list = $wpdb->get_results($author_sql, ARRAY_A);
     
    /* La requête me sort 1000 enregistrements */
    Mon var_dump de $tab ne m'affiche que des champs Array après avoir tourné dans les boucles..

  7. #7
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par abeh25 Voir le message
    Voilà je bloque sur l'écriture du second tableau.
    Quelqu'un pourrais m'expliquer pourquoi lorsque j'inscri dans mon $tab
    les valeurs les une après les autres à l'aide du foreach il m'empeche d'en ajouter plusieur à la fois lors d'un tour de boucle à l'aide du explode..

    Je m'y prend mal surement.. Quelque pour m'orienter dans la bonne direction ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $tab=array();
    $x=0;
    foreach ($author_list as $author){
    	$tab[$x]= explode(",", $author); 
    	$x++;
    }
     
     
    echo "<pre>";
    var_dump($tab);
    echo "</pre>";
    Explode retourne un tableau.
    Donc lorsque tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tab[$x]= explode(",", $author);
    tu ajoutes un tableau dans un tableau.

    La fonction array_merge pourrait peut-être régler ton problème.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 21
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par abeh25 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /* La requête me sort 1000 enregistrements */
    Mon var_dump de $tab ne m'affiche que des champs Array après avoir tourné dans les boucles..
    j'ai testé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $author_list = array("test1,test2,test3","test4,test5","test6");
    $tab=array();
    $x=0;
    foreach ($author_list as $author){
    	$tab[$x]= explode(",", $author); 
    	$x++;
    }
     
     
    echo "<pre>";
    var_dump($tab);
    echo "</pre>";
    et résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    array(3) {
      [0]=>
      array(3) {
        [0]=>
        string(5) "test1"
        [1]=>
        string(5) "test2"
        [2]=>
        string(5) "test3"
      }
      [1]=>
      array(2) {
        [0]=>
        string(5) "test4"
        [1]=>
        string(5) "test5"
      }
      [2]=>
      array(1) {
        [0]=>
        string(5) "test6"
      }
    }
    donc ta boucle marche bien.
    c'est pour ca que je voulais que tu postes un var_dump de $author_list (mets un limit 0,10 à ta requete pour pas avoir 1 000 résultats) car à mon avis le problème vient de là (soit la requète ne passe pas soit le résultat n'est pas au bon format.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
      [959]=>
      array(1) {
        [0]=>
        string(16) "ZWINGLI Huldrych"
      }
      [960]=>
      array(1) {
        [0]=>
        string(41) "Zhargalma Dandarova et Darima Boudaraevna"
      }
      [961]=>
      array(1) {
        [0]=>
        string(58) "sous la direction de Florence Quinche et Antonio Rodriguez"
      }
      [962]=>
      array(1) {
        [0]=>
        string(68) "sous la direction de Pierre-Yves Brandt et Claude-Alexandre Fournier"
      }
      [963]=>
      array(2) {
        [0]=>
        string(13) "AMSLER Samuel"
        [1]=>
        string(37) " LACOCQUE André et VUILLEUMIER René"
      }
      [964]=>
      array(2) {
        [0]=>
        string(22) "ATTIAS Jean-Christophe"
        [1]=>
        string(35) " GISEL Pierre et KAENNEL Lucie éd."
      }
      [965]=>
      array(2) {
        [0]=>
        string(12) "BASSET Lytta"
        [1]=>
        string(36) " CARRILLO Francine et SCHELL Suzanne"
      }
      [966]=>
      array(2) {
        [0]=>
        string(14) "BAUMANN Martin"
        [1]=>
        string(12) " STOLZ Jörg"
    Voilà j'ai avancé d'un pas! Merci pour vos commentaire, il ne me reste plus que de ré-organiser ces entrées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach ($author_list as $key => $author){
    				$tab[$x] = explode(",", $author['lf_all_author']);
    				$x++;
    				}
    				sort($tab);
    				echo "<pre>";
    				var_dump($tab);
    				echo "</pre>";
    Le problème avec sort(), est qu'il va placé les entrées qui ont explode en bas du tableau.. Comment les remettres dans l'ordre alphabetique pour qu'enfin je puisse les réafficher ?

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    J'ai enfin trouvé ! merci pour votre aide voilà le dernier bout de code..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $y = 0;
    				foreach ($tabs as $tab){
    					foreach($tab as $ta){
    						$final[$y] = trim($ta);
    						$y++;
    					}
    				}
     
    				sort($final);
    				echo "<pre>";
    				var_dump($final);
    				echo "</pre>";

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] Manipulation de données dans un Array
    Par arnaudperfect dans le forum Langage
    Réponses: 4
    Dernier message: 06/02/2009, 16h35
  2. [Tableaux] Extraction de données dans 'array'
    Par soshin dans le forum Langage
    Réponses: 4
    Dernier message: 23/09/2007, 13h51
  3. [Tableaux] Problème PHP - Recherche dans un Array
    Par daniel_gre dans le forum Langage
    Réponses: 1
    Dernier message: 18/07/2006, 09h10
  4. [Formulaires] Traitement des données dans une autre page...
    Par sekiryou dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/03/2006, 09h08
  5. [PHP-JS] Traitement des données dans une autre page...
    Par sekiryou dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2006, 09h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo