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 :

Est-ce possible d'accéder à une valeur d'un array multidimensionnel selon un string


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    webmaster amateur
    Inscrit en
    Septembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Bulgarie

    Informations professionnelles :
    Activité : webmaster amateur

    Informations forums :
    Inscription : Septembre 2017
    Messages : 10
    Par défaut Est-ce possible d'accéder à une valeur d'un array multidimensionnel selon un string
    Bonjour,

    Excusez-moi pour le titre qui n'est pas très explicite, je viens vous demander de l'aide

    Est-ce qu'il existe une fonction qui récupère la valeur d'un array selon un string qui représente le "chemin" dans l'array?

    J'ai un string qui peut contenir par exemple les valeurs suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $str1 = "France";
    $str2 = "France,Alsace";
    $str3 = "France,Alsace,Bas-Rhin";
    $str4 = "France,Alsace,Bas-Rhin,Strasbourg";
    $str5 = "France,Alsace,Bas-Rhin,Strasbourg,Kruthenau";
    J'aimerai pouvoir transformer ces strings de façon à récuperer la valeur de chaque élément dans un array multidimensionnel, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $val1 = monArray['France'];
    $val2 = monArray['France']['Alsace'];
    $val3 = monArray['France']['Alsace']['Bas-Rhin'];
    $val4 = monArray['France']['Alsace']['Bas-Rhin']['Strasbourg'];
    $val5 = monArray['France']['Alsace']['Bas-Rhin']['Strasbourg']['Kruthenau'];
    Voilà l'array multidimensionnel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $monArray = array(
        "France" => array (
            "Alsace" => array (
               "Bas-Rhin" => array (
                   "Strasbourg" => array (
                       "Kruthenau" => array (
                            // etc...
                        )   
                    )   
                )   
            )   
        )
    );
    Merci pour votre aide !

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Non, une telle fonction n'existe pas. C'est assez facile à faire en utilisant des références:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function getFromPath (&$myArray, $path) {
        $result = &$myArray;
        foreach (explode(',', $path) as $v) {
            $result = &$result[$v];
        }
        return $result;
    }
    Mais si tu en es réduit à faire ce genre de choses, c'est qu'il doit y avoir un problème de design quelque part.

  3. #3
    Membre habitué
    Homme Profil pro
    webmaster amateur
    Inscrit en
    Septembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Bulgarie

    Informations professionnelles :
    Activité : webmaster amateur

    Informations forums :
    Inscription : Septembre 2017
    Messages : 10
    Par défaut
    Je te remercie CosmoKnacki !

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/10/2017, 11h59
  2. Réponses: 2
    Dernier message: 04/04/2012, 19h16
  3. Réponses: 7
    Dernier message: 27/11/2007, 17h05
  4. Réponses: 7
    Dernier message: 28/09/2007, 17h29
  5. Est-il possible de sélectionner une valeur d'un menu déroula
    Par pontus21 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/05/2005, 09h44

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