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 :

alias pour un nom de tableau multidimensionnel ?


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Points : 316
    Points
    316
    Par défaut alias pour un nom de tableau multidimensionnel ?
    Bonjour à tous,

    Est-il possible d'utiliser un alias pour accéder aux données d'un array multidimensionnel ?

    J'utilise un tableau dont une des données insérées à l'initialisation est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->tabIdentifiant[$num]['seuil']=$row_rsListeActi['seuil'];
    plus loin pour accéder à cette donnée je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $seuil=$this->tabIdentifiant[$num]['seuil'];
    je voudrai pouvoir attribuer un alias pour pouvoir accéder aux données comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $seuil=$alias['seuil'];
    donc remplacer : $this->tabIdentifiant[$num]

    par $alias

    est-ce possible ?

    Merci d'avance pour vos réponse.

  2. #2
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 563
    Points : 2 390
    Points
    2 390
    Par défaut
    comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $alias = $this->tabIdentifiant[$num];
    $seuil = $alias['seuil'];
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Points : 316
    Points
    316
    Par défaut
    est-ce que ça ça ne crée pas un nouveau tableau $alias ?

  4. #4
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 563
    Points : 2 390
    Points
    2 390
    Par défaut
    Si.

    Mais si tu veux que les modifications apportées à $alias soient appliquées sur ton tableau de départ, il faut l'assigner par référence en ajoutant un &.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $tab = array(0 => array('a', 'b'));
    $alias = &$tab[0];
     
    $alias[0] = 'c';  // ici on remplace la valeur 'a' par 'c' qui va également s'appliquer dans $tab
     
    print_r($tab);
    print_r($alias);
    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
    Array
    (
        [0] => Array
            (
                [0] => c
                [1] => b
            )
     
    )
    Array
    (
        [0] => c
        [1] => b
    )
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Points : 316
    Points
    316
    Par défaut
    Oui d'accord mais ce que je cherche à avoir ce ne sont pas 2 tableaux mais un seul.(il s'agit déjà d'un tableau qui peux occuper beaucoup de place en mémoire)

    je me demande s'il est possible de faire comme dans une requete sql par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT unNomDeTable.tresComplique AS nomSimpl FROM etc..
    c'est juste que je préfererai pouvoir écrire ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $brutActi=(($nbrE+$nbrA)<=$alias["seuil"]) ? $alias["tarifAdult"] : $alias["tarifAdult"] +((($nbrE+$nbrA)-$alias["seuil"])*$alias["tarifEnfant"]);
    que ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $brutActi=(($nbrE+$nbrA)<=$this->tabIdentifiant[$cle]["seuil"]) ? $this->tabIdentifiant[$cle]["tarifAdult"] : $this->tabIdentifiant[$cle]["tarifAdult"] +((($nbrE+$nbrA)-$this->tabIdentifiant[$cle]["seuil"])*$this->tabIdentifiant[$cle]["tarifEnfant"]);
    Juste pour la lisibilité de mon code.

    Mais pas au point de dupliquer le tableau.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    La deuxième solution que t'a donné Seb33300 répond exactement à ta demande.
    Il ne s'agit pas d'une copie mais d'une référence.

    http://www.php.net/manual/fr/language.references.php
    Pourfendeur de singletons en croisade

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Points : 316
    Points
    316
    Par défaut
    D'accord je n'avais pas bien compris.

    C'est exactement ce qu'il me faut.

    Merci à vous deux pour votre aide

    Bonne soirée

  8. #8
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 563
    Points : 2 390
    Points
    2 390
    Par défaut
    Oui c'est vrai que mon post était assez flou mais la 2eme solution est ce que tu recherches.
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/04/2012, 14h51
  2. tableau multidimensionnel pour galerie photo xml
    Par Apapeur dans le forum Langage
    Réponses: 2
    Dernier message: 02/04/2012, 17h20
  3. Réponses: 7
    Dernier message: 28/09/2008, 16h48
  4. extraire parties d'un nom d'image pour en faire un tableau
    Par Gunner4902 dans le forum Langage
    Réponses: 3
    Dernier message: 22/07/2008, 13h36
  5. Réponses: 5
    Dernier message: 10/08/2007, 14h44

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