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 :

Extraire que certains éléments d'un tableau


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    635
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 635
    Par défaut Extraire que certains éléments d'un tableau
    Bonjour,

    Dans un tableau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $cmp_payments = array(0 => 'CB', 1 => 'Chèque', 2 => 'Espèce', 3 => 'Paypal', 4 => 'Prélèvement', 5 => 'Virement');
    Que j'affiche dans un type select:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <select ...
        <?php
         if ($class->idVte) { 
           foreach ($cmp_payments as $id => $payment) {
             $selected_payment = ($class->getVente($gFc->idVte, 'vte_mode_paiement')==$id)?"selected":"";
        ?>  
        <option value="<?php echo $id; ?>" <?php echo $selected_payment; ?>><?php echo $payment; ?></option>
        <?php 
           }            
         }
        ?>
       </select>
    Mais sur certains select, je souhaite uniquement afficher certains élément de ce tableau et pas d'autres,

    Comme je débute depuis près de 20ans, un exemple est le bienvenue,
    merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Etant donné le petit nombre de valeurs, la meilleure solution serait d'avoir une liste pour chaque cas.

    Une alternative serait d'ajouter des conditions dans la boucle mais je trouve ça lourd en écriture pour pas grand chose.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    635
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 635
    Par défaut
    D'où cette réflexion...

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    l'autre soluce serait quelque chose dans ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // affiche : cb chq esp
    foreach (array_intersect_key($cmp_payments, [0, 1, 2]) as $k => $v)
    {
     
    }
     
    // affiche : cb prvlt vrt
    foreach (array_intersect_key($cmp_payments, [0, 4, 5]) as $k => $v)
    {
     
    }

  5. #5
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    635
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 635
    Par défaut
    Merci, c'est exactement ce que je cherchais, mais cela me retourne une arreur de syntaxe niveau "["0, 4, 5]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach (array_intersect_key($cmp_payments, [0, 4, 5]) as $id => $payment)
    sinon ça retourne les 3 premiers

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    ton problème vient d'une différence de version de PHP.
    La (très pratique) syntaxe courte pour les tableaux [0, 4, 5] n'est disponible qu'à partir de PHP 5.4.0, avant cette version il faut utiliser array(0, 4, 5)

  7. #7
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    635
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 635
    Par défaut
    L'explication vient simplement du modèle de tableau choisi (avec ou sans clé)
    exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $array = array("foo", "bar", "hello", "world");
    N'en a pas besoin,
    Cordialement

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Les tableaux ont toujours des clés.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Besoin d'aide pour n'extraire que certaines données
    Par Jean-Marc68 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/02/2008, 17h53
  2. Masquer certains éléments d'un tableau
    Par onirisme dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 04/12/2007, 17h01
  3. Réponses: 1
    Dernier message: 15/12/2006, 14h53
  4. Ne faire apparaître que certaine colonne d'un tableau
    Par zuzuu dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 20/07/2006, 14h23
  5. Réponses: 1
    Dernier message: 06/02/2006, 13h53

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