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 :

Trouver dans array() le couple key => value


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Par défaut Trouver dans array() le couple key => value
    Bonjpur à tous,
    Ce matin je patauge sur un truc qui me semblait simplisme mais que je n'arrive pas à résoudre.
    J'ai un tableau de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Array(
    [1] => ../Bienvenu.php
    [2] => ../Formation/Fichier1.php
    [3] => ../Formation/Fichier2.php
    [41] => ../Formation/Fichier3.php
    [50] => ../Formation/Fichier6.php
    [6] => ../EvalFinale/Humain.php
    [7] => ../Formation/Innovation.php
    [21] => ../Formation/Fichier23.php
    …
    )
    Je souhaite extraire le couple key => value par ex [41] => ../Formation/Fichier3.php, comme en JS Array[41].
    Quelle est la function équivalente en PHP ?

    Je n'ai rien trouver sur le web qui puisse me sortir de l'ornière.

    Si qqu'un à une soluce d'avant merci !

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    euh... $tab[41] ? (en supposant que $tab est la variable contenant le tableau)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    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,

    il n'y a pas de fonctions équivalente en PHP juste des équivalences :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $data = [1 => 'abc', 2 => 'def', 41 => 'xyz', 3 => 'ghi'];
     
    $x = [41 => $data[41]];
    // ou
    $x = array_slice($data, array_search(41, array_keys($data), true), 1, true);
     
    unset($data[41]);

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Par défaut
    Citation Envoyé par Celira Voir le message
    euh... $tab[41] ? (en supposant que $tab est la variable contenant le tableau)
    Merci pour ta réponse mais cela ne fonctionne pas j'avais déjà essayé !

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    bon, donc j'ai pas compris ta demande : on peut voir le bout de code concerné ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Par défaut
    Citation Envoyé par Celira Voir le message
    bon, donc j'ai pas compris ta demande : on peut voir le bout de code concerné ?
    Le code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	$taboSource = json_decode($_POST['tabloSource'], true);
    	print_r($taboSource);
    	echo "tabloSource : ".$taboSource[21];
    Ce code me génère correctement le tabloSource qui de la forme énoncé + haut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Array(
    [1] => ../Bienvenu.php
    [2] => ../Formation/Fichier1.php
    [3] => ../Formation/Fichier2.php
    [41] => ../Formation/Fichier3.php
    [50] => ../Formation/Fichier6.php
    [6] => ../EvalFinale/Humain.php
    [7] => ../Formation/Innovation.php
    [21] => ../Formation/Fichier23.php
    …
    )
    Ce qui ne fonctionne pas c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "tabloSource : ".$taboSource[21];
    Voilà

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Salut,

    il n'y a pas de fonctions équivalente en PHP juste des équivalences :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $data = [1 => 'abc', 2 => 'def', 41 => 'xyz', 3 => 'ghi'];
     
    $x = [41 => $data[41]];
    // ou
    $x = array_slice($data, array_search(41, array_keys($data), true), 1, true);
     
    unset($data[41]);
    Merci pour ta réponse malheureusement aucune de tes solutions ne fonctionnent !
    Cdlt

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 38
    Par défaut
    salut,

    peux tu faire un var dump de ton tableau et nous dire stp ?

  9. #9
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Citation Envoyé par bronon Voir le message
    Ce qui ne fonctionne pas c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "tabloSource : ".$taboSource[21];
    Quand tu dis que ça ne fonctionne pas, qu'est ce qui s'affiche exactement ?
    Tu vois biens "tabloSource : " s'afficher ?

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Par défaut
    Citation Envoyé par Seb33300 Voir le message
    Quand tu dis que ça ne fonctionne pas, qu'est ce qui s'affiche exactement ?
    Tu vois biens "tabloSource : " s'afficher ?
    Je ne vois pas la valeur s'afficher ($taboSource[21]), le text Ok.

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Par défaut
    Citation Envoyé par JulienBaldy Voir le message
    salut,

    peux tu faire un var dump de ton tableau et nous dire stp ?
    Désolé je n'ai pas compris ?

  12. #12
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Peux tu afficher le code source de la page depuis ton navigateur, et coller ici le résultat ?

  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 38
    Par défaut
    Citation Envoyé par bronon Voir le message
    Désolé je n'ai pas compris ?
    un var dump

    var_dump($taboSource);

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Par défaut
    Citation Envoyé par JulienBaldy Voir le message
    un var dump

    var_dump($taboSource);
    Le var_dump($taboSource)

    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
    48
     
     
    array(23) {
      [1]=>
      string(15) "../Bienvenu.php"
      [2]=>
      string(19) "../Formation/Initial.php"
      [4]=>
      string(35) "../Formation/QuestionnaireCommercial.php"
      [5]=>
      string(34) "../Formation/Questionnaire1.php"
      [6]=>
      string(24) "../EvalFinale/Humain.php"
      [7]=>
      string(22) "../Formation/Innovation.php"
      [11]=>
      string(15) "../Bienvenu.php"
      [21]=>
      string(19) "../Formation/Questionnaire2.php"
      [31]=>
      string(22) "../Formation/Questionnaire3.php"
      [32]=>
      string(28) "../Formation/Questionnaire4.php"
      [33]=>
      string(30) "../Formation/Questionnaire5.php"
      [41]=>
      string(35) "../Formation/Questionnaire6.php"
      [42]=>
      string(35) "../Formation/Questionnaire7.php"
      [43]=>
      string(35) "../Formation/Questionnaire8.php"
      [44]=>
      string(35) "../Formation/Questionnaire9.php"
      [45]=>
      string(32) "../Formation/Validation1.php"
      [51]=>
      string(34) "../Formation/Questionnaire10.php"
      [52]=>
      string(34) "../Formation/Questionnaire11.php"
      [53]=>
      string(34) "../Formation/Questionnaire12.php"
      [54]=>
      string(34) "../Formation/Questionnaire13.php"
      [55]=>
      string(31) "../Formation/Validation2.php"
      [71]=>
      string(22) "../Formation/Innovation.php"
    }

  15. #15
    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
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($taboSource[21]);
    ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Par défaut
    Citation Envoyé par sabotage Voir le message
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($taboSource[21]);
    ?
    Réponse

  17. #17
    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
    Tu peux nous donner la valeur de $_POST['tabloSource'] ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu peux nous donner la valeur de $_POST['tabloSource'] ?
    La valeur de tabloSource :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "1":"../Bienvenu.php","2":"../Formation/Initial.php","3":"../Formation/DescProjet.php","4":"../Formation/QuestionnaireCommercial.php","5":"../Formation/Questionnaire1.php","6":"../EvalFinale/Humain.php","7":"../Formation/Innovation.php","11":"../Bienvenu.php","21":"../Formation/Initial.php","31":"../Formation/DescProjet.php","32":"../Formation/Validation1.php","33":"../Formation/DescProjetAutoEval.php","41":"../Formation/Questionnaire2.php","42":"../Formation/QuestionnaireCommercial.php","43":"../Formation/Questionnaire3.php","44":"../Formation/Questionnaire4.php","45":"../Formation/Validation1.php","46":"../Formation/Questionnaire5.php","51":"../Formation/Questionnaire10.php","52":"../Formation/Questionnaire7.php","53":"../Formation/Questionnaire8.php","54":"../Formation/Questionnaire9.php","55":"../Formation/Validation2.php","71":"../Formation/Innovation.php"}
    Mille mercis et bonne soirée

  19. #19
    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,

    as-tu remarqué que la valeur du $_POST['tabloSource'] commence par " et se termine par }...
    Quand je reprends ton code en le corrigeant, je récupère bien les valeurs dans un tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $json = '{"1":"../Bienvenu.php","2":"../Formation/Initial.php","3":"../Formation/DescProjet.php","4":"../Formation/QuestionnaireCommercial.php","5":"../Formation/Questionnaire1.php","6":"../EvalFinale/Humain.php","7":"../Formation/Innovation.php","11":"../Bienvenu.php","21":"../Formation/Initial.php","31":"../Formation/DescProjet.php","32":"../Formation/Validation1.php","33":"../Formation/DescProjetAutoEval.php","41":"../Formation/Questionnaire2.php","42":"../Formation/QuestionnaireCommercial.php","43":"../Formation/Questionnaire3.php","44":"../Formation/Questionnaire4.php","45":"../Formation/Validation1.php","46":"../Formation/Questionnaire5.php","51":"../Formation/Questionnaire10.php","52":"../Formation/Questionnaire7.php","53":"../Formation/Questionnaire8.php","54":"../Formation/Questionnaire9.php","55":"../Formation/Validation2.php","71":"../Formation/Innovation.php"}';
     
    $data = json_decode($json, true);
    Sans correction -> je ramasse un null

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Par défaut
    Merci,

    Normal que le format de $_POST['tabloSource'] soit sous cette forme puisqu'il s'agit d'un format json.
    En fait le pb venait des 2 points au début de la value. J'ai remplacé ces 2 points par le mot 2POINTS dans la définition des data de l'ajax de départ.
    J'obtiens bien la valeur via taboSource[21], 2POINTS/Formation/Initial.php par exemple.

    Merci à tous

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Associer automatiquement $key et $value d'un array
    Par dldstyle dans le forum Langage
    Réponses: 6
    Dernier message: 22/07/2010, 13h28
  2. trouver dans la pager
    Par rapanui dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/10/2006, 10h35
  3. Réponses: 4
    Dernier message: 09/07/2006, 14h41
  4. Pb Insertion dans ma table couple
    Par lolodelp dans le forum Administration
    Réponses: 4
    Dernier message: 21/02/2006, 08h37

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