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 :

[Tableaux] Différence entre deux syntaxes


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut [Tableaux] Différence entre deux syntaxes
    Bonjour,

    j'ai un tableau dans du code php, jusque là tout va bien.

    Maintenant, quand j'écris ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableau_login[] = array(labels => ",Login");
    j'aurai le mot "Array" qui s'affiche dans la première case de mon tableau.

    Si j'écris simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableau_login = array();
    alors mon tableau n'est plus bien mis en forme comme je le souhaite, mais le "Array" ne s'affiche plus et j'obtiens bien uniquement les valeurs que je veux.

    Quelqu'un saurait-il me dire la différence entre ces deux syntaxes et le pourquoi du "Array" ?

  2. #2
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    salut
    $tableau_login[] = array(labels => ",Login");
    sauf erreur de ma part, la syntaxe ci-dessus crée un tableau dans un autre tableau. C'est à dire que la première valeur contenu dans ton $tableau_login est un tableau de longueur 1 (array(labels => ",Login").

    $tableau_login = array();
    ceci crée simplement un tableau vide.

    peut être que ce que tu veux faire c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableau_login['labels'] = "Login";

  3. #3
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    En faisant un var_dump avec la première syntaxe, j'obtiens effectivement une première ligne avec "Login" comme valeur.

    Et pour la solution que tu as proposé en dernier, je n'affiche pas que des login dans mon tableau, mais deux liens à côté de chaque case (ce qui me donne pour une ligne "login - lien 1 - lien 2".

    Et je ne comprends pas pourquoi une syntaxe m'affiche "Array" en fait, je vois pas d'où il sort. Dès que je passe à la seconde, hop il n'y est plus oO

    [EDIT]

    Je viens de regarder plus en détail le var_dump :

    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
     	
    
    array(4) {
      [0]=>
      array(1) {
        ["labels"]=>
        string(6) ",Login"
      }
     [1]=>
      array(4) {
        ["descD"]=>
        int(1)
        ["valC1"]=>
        array(1) {
          ["labels"]=>
          string(6) ",Login"
        }
        ["val2"]=>
        string(66) "Modi"
        ["val3"]=>
        string(67) "PDF"
      }
      [2]=>
      array(4) {
        ["descD"]=>
        int(2)
        ["valC1"]=>
        string(6) "unloginparmidautres"
        ["val2"]=>
        string(67) "Modi"
        ["val3"]=>
        string(68) "PDF"
      }
    Et j'ai une case Array dans le tableau parce que j'ai ce morceau de code qui s'affiche alors que je ne sais pas pourquoi. Enfin je suppose que ça vient d'ici :/

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Par défaut
    Salut,
    c'est normal quela première syntaxe t'affiche Array. Comme le dit julien.63, tu crées un tableau de tableaux.
    Donc chaque case de ton tableau contient un tableau.
    Si tu fais un affichage classique du genre echo, php affiche "Array", ce qui est vrai. Si tu veux afficher le contenu du tableau contenu dans la première case (ça va, ça suit ?), tu fais un print_r(tableau[x]) ou bien tu dois faire une boucle

    Pour ce que tu veux faire, je pense que tu dois effectivement créer un tableau de tableaux :
    tableau[]=array(login, lien1, lien2).
    Et tu peux ensuite faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    foreach(tableau as $k => soustableau) {
       foreach(soustableau as $k2 => $v) {
          echo $v //1er passage : login, 2ème et 3ème passage : les liens
       }
    }

  5. #5
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    En fait, comme code j'ai fait ceci (je supprime les doublons au passage (merci kifouillou)):

    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
     
    $R = split(',', $R['login']);
    foreach($R as $login)
    {
       	$login = trim($login);
           if(!in_array($login, $tableau_login))
           {
            	$tableau_login[] = $login;
           }
    }
    }
    $j = 1;
    foreach($tableau_login as $login)
    {
    	if ($login == '') ;
    	else 
    	{
    		$tableau_login[$j] = array(descD => $j,
    		valC1 => $login,
    		val2  => '<A HREF=start.php3?Action=cpt&Etape=Form&Val='.$login.'><B>Modi</B></A>',
    		val3  => '<A HREF=start_pdf.php?Action=cpt&Etape=PDF&Val='.$login.'><B>PDF</B></A>',
    		);
    	$j++;
    	}
    }

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Par défaut
    Et donc ?

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

Discussions similaires

  1. Mettre en rouge les différences entre deux tableaux
    Par Yobi1993 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/05/2013, 09h05
  2. Différence entre deux tableaux
    Par agh dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/04/2013, 09h52
  3. différence entre deux tableaux
    Par ledisciple dans le forum Langage
    Réponses: 11
    Dernier message: 29/04/2011, 19h52
  4. [PHP 5.0] Différence entre deux tableaux d'objets (array_diff_uassoc)
    Par shawn12 dans le forum Langage
    Réponses: 4
    Dernier message: 22/11/2009, 16h14
  5. La différence entre deux syntaxes d’instanciation
    Par infoelectronique dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 08/07/2008, 12h41

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