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 :

foreach dans array multi-dimensionnel - recuperer valeur en fonction de la valeur d'une autre clé


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Mai 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable sécurité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2013
    Messages : 8
    Points : 13
    Points
    13
    Par défaut foreach dans array multi-dimensionnel - recuperer valeur en fonction de la valeur d'une autre clé
    Bonjour,

    J'ai un tableau bidimensionnel.
    Chaque sous-tableau a plusieurs couples clé/valeur.
    Je souhaite implémenter une variable avec la valeur d'une clé de chaque sous-tableau suivant la valeur d'une autre clé.

    Ça semble tellement simple dit comme ça, j'ai essayé le code ci-dessous mais je ne comprend pas ce qui bloque.
    Heeeelp !!!!

    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
    // le tableau
    $tablenote =[
    [ 'Note_R' => 99, 'Note_S' => 7, 'Note_Review' => 'direct' ],
    [ 'Note_R' => 1, 'Note_S' => 99, 'Note_Review' => 'vers' ],
    [ 'Note_R' => 99, 'Note_S' => 5, 'Note_Review' => 'direct' ], 
    [ 'Note_R' => 2, 'Note_S' => 4, 'Note_Review' => 'direct' ]
    ];
     
    // définition des variables
    $ratingR = 'Note_R' ;
    $ratingS = 'Note_S' ;
     
    //recuperation dans variable $table qui sera un tableau simple des notes S suivant la valeur des notes R
     
        foreach ($tablenote as $val1) {
            if($val1[$ratingR] == 99);{
                $table[] = $val1[$ratingS];
            }
        }

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 228
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 228
    Points : 8 487
    Points
    8 487
    Billets dans le blog
    17
    Par défaut
    Une espèce de liste chaînée.

    Montre le résultat attendu.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Mai 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable sécurité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2013
    Messages : 8
    Points : 13
    Points
    13
    Par défaut
    Dans cet exemple, la variable $table est censée ressembler à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    table (
    [0] => 7
    [1] => 5
    )

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 228
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 228
    Points : 8 487
    Points
    8 487
    Billets dans le blog
    17
    Par défaut
    OK rien à voir avec une liste chaînée

    Tu as une erreur de syntaxe ici, le ; qui traine après le if() fausse l'exécution conditionnelle.

    if($val1[$ratingR] == 99);{

  5. #5
    Membre à l'essai
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Mai 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable sécurité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2013
    Messages : 8
    Points : 13
    Points
    13
    Par défaut
    Non mais c'est pas vrai... des heures que je cherche, j'étais prêt à tout abandonner et aller élever des chèvres dans la Creuse !
    Saleté de point virgule.

    Merci !

  6. #6
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 791
    Points : 3 058
    Points
    3 058
    Par défaut
    Des outils d'analyse comme phan (https://github.com/phan/phan) l'aurait très certainement vu.

    Peut-être même PHP-CS-Fixer qui reformate le code et peut-être aurais-tu vu ce point virgule de manière plus explicite.

    Bravo à Seb de l'avoir vu, ce n'était pas évident.


    [EDIT] Oui tu l'aurais vu je viens de copier ton code sur https://benjamincrozat.com/pint-express qui lance PHP-CS-Fixer et oui, le reformatage met en évidence le souci [/EDIT]

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

Discussions similaires

  1. remplacement de valeurs dans array multi-dimensionnel
    Par jeromeplanete dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/09/2023, 13h06
  2. Réponses: 18
    Dernier message: 18/04/2014, 21h42
  3. [Dojo] Recuperer valeur d'une case d'un dataGrid dans un évenement onclick
    Par reportPer dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 29/04/2010, 23h42
  4. Réponses: 20
    Dernier message: 09/07/2008, 12h41
  5. Array multi dimensionnelle et associative
    Par nico33307 dans le forum Langage
    Réponses: 6
    Dernier message: 09/05/2008, 07h05

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