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 :

problème de syntaxe pour l'accès à un élément d'un array


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 141
    Points : 92
    Points
    92
    Par défaut problème de syntaxe pour l'accès à un élément d'un array
    Bonjour

    j'ai l'array suivant
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    Array
    (
        [@attributes] => Array
            (
                [active] => true
            )
     
        [PUDO_ID] => P22216
        [DISTANCE] => 2569
        [NAME] => D UNE FLEUR A L AUTRE
        [ADDRESS1] => 61T AVANUE ARISTIDE BRIAND
        [ADDRESS2] => Array
            (
            )
     
        [ADDRESS3] => Array
            (
            )
     
        [LOCAL_HINT] => Array
            (
            )
     
        [ZIPCODE] => 21000
        [CITY] => DIJON
        [LONGITUDE] => 5,05305555556
        [LATITUDE] => 47,3341666667
        [MAP_URL] => Array
            (
            )
     
        [AVAILABLE] => full
        [OPENING_HOURS_ITEMS] => Array
            (
                [OPENING_HOURS_ITEM] => Array
                    (
                        [0] => Array
                            (
                                [DAY_ID] => 2
                                [START_TM] => 09:00
                                [END_TM] => 19:00
                            )
     
                        [1] => Array
                            (
                                [DAY_ID] => 3
                                [START_TM] => 09:00
                                [END_TM] => 19:00
                            )
     
                        [2] => Array
                            (
                                [DAY_ID] => 4
                                [START_TM] => 09:00
                                [END_TM] => 19:00
                            )
     
                        [3] => Array
                            (
                                [DAY_ID] => 5
                                [START_TM] => 09:00
                                [END_TM] => 19:00
                            )
     
                        [4] => Array
                            (
                                [DAY_ID] => 6
                                [START_TM] => 09:00
                                [END_TM] => 19:00
                            )
     
                        [5] => Array
                            (
                                [DAY_ID] => 7
                                [START_TM] => 09:00
                                [END_TM] => 12:00
                            )
     
                    )
     
            )
     
        [HOLIDAY_ITEMS] => Array
            (
            )
     
    )
    et il me sort un erreur "Fatal error: Cannot use string offset as an array" quand j'essaye d'accéder à cet élément :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $horaires	=	$monArray["OPENING_HOURS_ITEMS"]["OPENING_HOURS_ITEM"][0]["DAY_ID"];
    Je ne comprends pas car ça correspond bien !
    Pourriez-vous m'aiguiller sur ce qui n'irait pas ?

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 387
    Points
    9 387
    Par défaut
    Ton print_r() est-il juste avant ton accès ?

    Car apparemment sur ce topic : http://www.developpez.net/forums/d49...t-as-an-array/
    Le soucis venait d'un problème de déclaration de variable. Donc il se pourrait que ton array ne soit pas accessible à l'endroit où tu l'appelles et donc il tenterai de créer ces index.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 141
    Points : 92
    Points
    92
    Par défaut
    ce que je n'ai pas précisé c'est que j'accède bien à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $horaires = $monArray["OPENING_HOURS_ITEMS"]
    mais pas plus loin, si j'essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $horaires = $monArray["OPENING_HOURS_ITEMS"]["OPENING_HOURS_ITEM"]
    il devrait me dire que $horaire = array() ... mais non il me retourne directement l'erreur.

    c'est un peu bizarre je trouve ...

    à tout hasard voici mon code en entier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for($i=0; $i<$nbRelais; $i++)
    {
    	$distance	=	number_format($arrXml["PUDO_ITEMS"]["PUDO_ITEM"][$i]["DISTANCE"] / 1000, 3, ',', ' ');
     
    	$ewp->_HTML	.=	'<input type="radio" name="ptsRelaise" id="ptsRelais_'.$arrXml["PUDO_ITEMS"]["PUDO_ITEM"][$i]["PUDO_ID"].'" value="'.$arrXml["PUDO_ITEMS"]["PUDO_ITEM"][$i]["PUDO_ID"].'" />
    					<b>'.$arrXml["PUDO_ITEMS"]["PUDO_ITEM"][$i]["NAME"].'</b> -
    					<i>'.$arrXml["PUDO_ITEMS"]["PUDO_ITEM"][$i]["ADDRESS1"].'
    					'.$arrXml["PUDO_ITEMS"]["PUDO_ITEM"][$i]["ZIPCODE"].' '.$arrXml["PUDO_ITEMS"]["PUDO_ITEM"][$i]["CITY"].' ('.$distance.'km)</i><br />';
     
    	$horaires	=	$arrXml["PUDO_ITEMS"]["PUDO_ITEM"][$i]["AVAILABLE"]["OPENING_HOURS_ITEMS"]["OPENING_HOURS_ITEM"][0]["DAY_ID"];
     
    }
    et donc ce qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $horaires	=	$arrXml["PUDO_ITEMS"]["PUDO_ITEM"][$i]["AVAILABLE"]["OPENING_HOURS_ITEMS"]
    et ce qui ne passe plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $horaires	=	$arrXml["PUDO_ITEMS"]["PUDO_ITEM"][$i]["AVAILABLE"]["OPENING_HOURS_ITEMS"]["OPENING_HOURS_ITEM"][0]["DAY_ID"];
    Est-ce qu'il n'y aurait pas un nombre limité de niveau dans un array ... ça m'étonnerait .... !?!?

    Merci de votre aide

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

Discussions similaires

  1. problème de syntaxe pour un débutant
    Par marsamandes dans le forum Langage
    Réponses: 3
    Dernier message: 02/05/2007, 13h25
  2. [VBA-Excel] Problème de syntaxe pour lien hypertexte
    Par matt8-5 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/01/2007, 11h23
  3. Problème de syntaxe pour fichier SQL
    Par savior dans le forum SQL
    Réponses: 12
    Dernier message: 13/09/2006, 13h33
  4. Problème de syntaxe pour concaténer des variables
    Par renaud26 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/09/2006, 09h44
  5. Problème de syntaxe pour Firefox
    Par daladim dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/09/2005, 16h39

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