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 :

indice de tableau non-existant


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut indice de tableau non-existant
    Bonjour,

    voici un bug que je ne comprends pas :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $manager=[ 
    'manager_firstname' => $data['manager_firstname'],
    'manager_lastname' => $data['manager_lastname']];

    var_dump($manager); donne
    array (size=2)
    'manager_firstname' => string 'Mei' (length=3)
    'manager_lastname' => string 'Lio' (length=3
    et var_dump($manager[0]); donne
    ) Notice: Undefined offset: 0 in C:\wamp64\www\phpecho-billet3\model\User.php on line 107
    Pourquoi ?

  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 : 41
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Et où vois-tu un index 0 dans ce tableau :
    array (size=2)
    'manager_firstname' => string 'Mei' (length=3)
    'manager_lastname' => string 'Lio' (length=3
    Tu voulais peut-être faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $manager[]=[ 
    'manager_firstname' => $data['manager_firstname'],
    'manager_lastname' => $data['manager_lastname']];
    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
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    J'ai compris ! $manager['firstname'] au lieu de $manager['0'].

    [EDIT]merci Celira ; ton code est plus efficace que le mien $ret[]=$manager['manager_firstname'];$ret[]=$manager['manager_lastname'];

  4. #4
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Je reviens car tout compte fait, le code ne fait pas ce que je souhaite.

    On part de :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     $ret=[
                'firstname' => $data['firstname'],
                'lastname' => $data['lastname'],
                'sesa' => $data['sesa'],
                'email' => $data['email'],
                'country' => $data['country'],
                'name_site' => $data['name_site']           
            ];
            $manager=[ 
                'manager_firstname' => $data['manager_firstname'],
                'manager_lastname' => $data['manager_lastname']
            ];

    si $manager est non-vide, on doit arriver à
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ret=[
                'firstname' => $data['firstname'],
                'lastname' => $data['lastname'],
                'sesa' => $data['sesa'],
                'email' => $data['email'],
                'country' => $data['country'],
                'name_site' => $data['name_site'],
                'manager_firstname' => $data['manager_firstname'],
                'manager_lastname' => $data['manager_lastname']
            ];

    Le code actuel ne convient donc pas :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     if (!empty($manager)) {$ret[]=[ 
                'manager_firstname' => $data['manager_firstname'],
                'manager_lastname' => $data['manager_lastname']];}
    Quelle serait une bonne solution ?

  5. #5
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut
    Salut, montres nous un peu les données, un jeu d'exemples.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour Laurent,
    c'est la première fois que tu utilises des array ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (!empty($manager)) {
    	$ret['manager_firstname'] = $data['manager_firstname'];
    	$ret['manager_lastname'] = $data['manager_lastname'];
    }
    Une autre solution ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!empty($manager)) {
    	$ret = array_merge( $ret, $manager );
    }

  7. #7
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Voici un exemple (un peu changé les valeurs) :

    'sesa' => string 'SESA123456' (length=10)
    'lastname' => string 'Dupont' (length=5)
    'firstname' => string 'Dupond'=7)
    'email' => string 'dupond.dupont@se.com' (length=20)
    'name_site' => string 'PLM' (length=3)
    'country' => string 'France' (length=6)
    'manager_firstname' => string 'Tournesol' (length=3)
    'manager_lastname' => string 'Tryphon' (length=3

  8. #8
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Je viens seulement de voir l'intervention de Jérôme et depuis longtemps j'ai trouvé et adopté sa première solution.

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

Discussions similaires

  1. indice de tableau qui existe et pourtant undefned
    Par laurentSc dans le forum Langage
    Réponses: 3
    Dernier message: 28/03/2019, 09h49
  2. Réponses: 2
    Dernier message: 08/08/2016, 11h04
  3. Recherche élément médian dans tableau non trié
    Par chicorico dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 27/05/2009, 18h39
  4. Réponses: 9
    Dernier message: 17/03/2005, 10h20
  5. Réponses: 3
    Dernier message: 16/12/2002, 17h12

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