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] [PHP5] Tableaux associatifs


Sujet :

Langage PHP

  1. #1
    Membre chevronné
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 136
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    3
    Par défaut [Tableaux] [PHP5] Tableaux associatifs
    Hello tout le monde,

    J'aurais une tite question concernant les tableaux.
    J'ai un tableau de type $tab[0]['nom'] et $tab[0]['prenom'] ...etc.

    Je voudrais stocker par exemple les noms et les prenoms dans 2 tableaux distincts. Donc évidemment je fais un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach ($tab as $ligne)
      $tab1[] = $ligne['nom'];
      $tab2[] = $ligne['prenom'];
    Mais n'y aurait il pas une fonction native à php qui permet de faire ça automatiquement ? (sans que j'ai besoin de créer une fonction).

    Merci pour vos réponses,
    .o0o__St@iLeR__oOo.

    Lead Developer

    ASP.NET MVC - MCP/MCSD ASP.NET
    PHP Zend Framework / PhalconPHP
    Cordova/Xamarin IOS/Android
    Kendo UI - ExtJS - JQwidgets
    SQL Server / MySQL

  2. #2
    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 : 49
    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
    A priori, aucune fonction ne me vient à l'esprit.
    Mais peut-être que c'est la construction du tableau "racine" à deux dimensions qui doit être repensée.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  3. #3
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    il n'y a pas de fonction spéciale pour ça mais peut être que le problème se trouve après dans ton code, il y a surement un moyen d'utliser ton tableau $tab dans la suite sans avoir besoin de le copier dans deux nouveaux tableaux

  4. #4
    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 : 49
    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
    La POO te serait sans doute utile.

    Disons que tu as une classe LesPersonnes composées d'objets LaPersonne.
    Tu peux ajouter une propriétés LesNoms à ta collection LesPersonnes.

    A chaque fois que tu ajoute une personne à la collection, tu peux ajouter son nom dans LesNoms.

    Ainsi tu pourra accéder à toutes les personnes ou à tous les noms de manière indépendante.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  5. #5
    Membre chevronné
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 136
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    3
    Par défaut
    En fait je récupère avec ADODB pour PHP une sélection de ma base de données.
    Voici un extrait d'une méthode de ma classe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private function getAllClients()
    {
    return $this->getDb()->GetArray('SELECT UID, nom, prenom FROM clients');
    }
    Donc j'ai bien un tableau associatif à 2 dimensions dans le résultat de getAllClients(). La dimension 1 comporte les n° de ligne et la dimension 2 comporte les noms des colonnes...

    Donc voilà, je me demandais s'il n'y avait pas une fonction native pour faire 2 tableaux distincts ou du moins 1 par seconde dimension.

    Pour l'heure pas la peine de tuer une mouche avec un canon en commeçant à créer des classes de partout... Une petite fonction dans la classe de base de mes modules suffira amplement
    .o0o__St@iLeR__oOo.

    Lead Developer

    ASP.NET MVC - MCP/MCSD ASP.NET
    PHP Zend Framework / PhalconPHP
    Cordova/Xamarin IOS/Android
    Kendo UI - ExtJS - JQwidgets
    SQL Server / MySQL

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par stailer
    Donc voilà, je me demandais s'il n'y avait pas une fonction native pour faire 2 tableaux distincts ou du moins 1 par seconde dimension.
    tu veux utiliser ces tableaux comment dans la suite de ton code ?

  7. #7
    Membre chevronné
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 136
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    3
    Par défaut
    Je les utilise dans un select html avec le moteur de templates SMARTY.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $this->smarty->assign('clients_noms', $tab_noms);
    $this->smarty->assign('clients_uid', $tab_uid);
    les value du select prendre les UID des clients, et les valeurs à sélectionnées dans la liste seront les noms.
    .o0o__St@iLeR__oOo.

    Lead Developer

    ASP.NET MVC - MCP/MCSD ASP.NET
    PHP Zend Framework / PhalconPHP
    Cordova/Xamarin IOS/Android
    Kendo UI - ExtJS - JQwidgets
    SQL Server / MySQL

  8. #8
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par stailer
    Je les utilise dans un select html avec le moteur de templates SMARTY.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $this->smarty->assign('clients_noms', $tab_noms);
    $this->smarty->assign('clients_uid', $tab_uid);
    les value du select prendre les UID des clients, et les valeurs à sélectionnées dans la liste seront les noms.
    d'accord dans ce cas tu es obligé de passer par un "foreach"

    si je peux me permettre de rajouter une couche, tu remarquera qu'avec des objets tu aurais pu passer directement les objets de la base de données à la sortie html

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

Discussions similaires

  1. [Tableaux] implode tableau associatif
    Par shelko dans le forum Langage
    Réponses: 6
    Dernier message: 02/04/2007, 18h05
  2. [Tableaux] Tableau multidimensionnel associatif
    Par Anne1969 dans le forum Langage
    Réponses: 12
    Dernier message: 20/02/2007, 14h51
  3. Réponses: 3
    Dernier message: 04/08/2006, 19h24
  4. [Tableaux] Remplissage tableau associatif
    Par Seth77 dans le forum Langage
    Réponses: 4
    Dernier message: 28/06/2006, 11h07
  5. [Tableaux] Paramètre tableau associatif
    Par XtofRoland dans le forum Langage
    Réponses: 3
    Dernier message: 20/04/2006, 18h45

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