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] Supprimer l'index d'un tableau à 2 dimensions [FAQ]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Par défaut [Tableaux] Supprimer l'index d'un tableau à 2 dimensions
    Bonjour,

    Je voudrais savoir comment faire pour supprimer tout un index
    d'un tableau à 2 dimensions.
    Par ex que le tableau suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      $arr2 = array(array());
      $arr2[0][1] = "Voici";
      $arr2[0][2] = "la 1ere";
      $arr2[0][3] = "rangée";
      $arr2[1][1] = "Voila";
      $arr2[1][2] = "la 2eme";
      $arr2[1][3] = "rangée";
      $arr2[2][1] = "Et enfin";
      $arr2[2][2] = "la 3eme";
      $arr2[2][3] = "rangée";
    ressemble aprés la suppression à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      $arr2 = array(array());
      $arr2[0][1] = "Voici";
      $arr2[0][2] = "la 1ere";
      $arr2[0][3] = "rangée";
      $arr2[2][1] = "Et enfin";
      $arr2[2][2] = "la 3eme";
      $arr2[2][3] = "rangée";
    j'ai essayé avec unset mais sans succés. J'arrive seulement à supprimer
    les valeurs relatives à l'index, mais pas l'index lui même.
    Y a t-il une fonction spéciale pour ça ?

    Merci

  2. #2
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Chez moi en faisant :

    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
    $arr2 = array(array());
    $arr2[0][1] = "Voici";
    $arr2[0][2] = "la 1ere";
    $arr2[0][3] = "rangée";
    $arr2[1][1] = "Voila";
    $arr2[1][2] = "la 2eme";
    $arr2[1][3] = "rangée";
    $arr2[2][1] = "Et enfin";
    $arr2[2][2] = "la 3eme";
    $arr2[2][3] = "rangée";
     
    print_r($arr2);
     
    unset($arr2[1]);
     
    print_r($arr2);
    J'obtient :

    Array
    (
    [0] => Array
    (
    [1] => Voici
    [2] => la 1ere
    [3] => rangée
    )

    [1] => Array
    (
    [1] => Voila
    [2] => la 2eme
    [3] => rangée
    )

    [2] => Array
    (
    [1] => Et enfin
    [2] => la 3eme
    [3] => rangée
    )

    )
    Array
    (
    [0] => Array
    (
    [1] => Voici
    [2] => la 1ere
    [3] => rangée
    )

    [2] => Array
    (
    [1] => Et enfin
    [2] => la 3eme
    [3] => rangée
    )

    )

  3. #3
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    C'est ce qu'il dit, ca ne marche pas, parce que le deuxieme element dans ton nouveau tableau est a l'index 2 et non 1.

    Par contre tu peux tres bien utiliser le foreach pour parcourir ce tableau comme ca pas de pb d'index.
    Sinon tu te fais un nouveau tableau que tu remplis a partir du précédent en retirant la ligne que tu ne veux pas. Je ne vois pas de fonction dédiée pour faire ca désolé.

  4. #4
    Membre averti
    Inscrit en
    Décembre 2002
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 53
    Par défaut
    Test ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     print_r($arr2);
     array_splice($arr2, 1, 1);
     print_r($arr2);
    Il se pourrait que ça aide.

  5. #5
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Effectivement ce code fonctionne:
    J'ai pourtant lu la documentation de array_splice() et je ne l'avais pas comprise comme ça, bien joué !

  6. #6
    Membre éclairé Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Par défaut
    Tout à fait!
    En plus de supprimer l'index, array_splice réindexe
    le tableau dans l'ordre croissant.
    Avec l'exemple ci-dessus le résultat avec array_splice est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $arr2 = array(array());
    $arr2[0][1] = "Voici";
    $arr2[0][2] = "la 1ere";
    $arr2[0][3] = "rangée";
    $arr2[1][1] = "Et enfin";
    $arr2[1][2] = "la 3eme";
    $arr2[1][3] = "rangée";
    Exellent! Merci

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

Discussions similaires

  1. [Tableaux] supprimer une ligne dans une tableau
    Par hadjiphp dans le forum Langage
    Réponses: 5
    Dernier message: 25/05/2009, 15h54
  2. Réponses: 4
    Dernier message: 07/05/2009, 14h50
  3. Réponses: 3
    Dernier message: 06/10/2006, 16h46
  4. [Tableaux] supprimer un élément d'un tableau
    Par banzzai dans le forum Langage
    Réponses: 1
    Dernier message: 15/09/2006, 16h52
  5. [Tableaux] Supprimer une clé d'un tableau
    Par Anduriel dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2005, 22h04

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