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 une clé d'un tableau


Sujet :

Langage PHP

  1. #1
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut [Tableaux] Supprimer une clé d'un tableau
    Salut,

    J'ai un tableau:
    Array (
    [0] => array(1, 2, 3),
    [1] => array(1, 2, 3),
    [2] => array(1, 2, 3)
    )
    Je récupère dans une variable une clé comme 0. Moi je voudrai supprimer les valeurs correspondantes pour qu'il n'y est plus que:
    Array (
    [1] => array(1, 2, 3),
    [2] => array(1, 2, 3)
    )
    J'ai essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (isset($_REQUEST['delete'])) {
    	unset($form->elements[$_REQUEST['delete']]);
       }
    puis avec array_splice() mais c'est compliqué si ce que je veux supprimer est en milieu de tableau...
    Comment faire?
    Merci

  2. #2
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 241
    Points
    8 241
    Par défaut
    tu as essayé ceci ?
    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
    <?
    function delkey_from_array($array_with_elements, $key_name)
        {
        $key_index = array_keys(array_keys($array_with_elements), $key_name);
        if (count($key_index) != '')
            array_splice($array_with_elements, $key_index[0], 1);
        return $array_with_elements;
        }
     
    $tab = array(
    	array(1,2,3),
    	array(4,2,3),
    	array(6,2,3));
     
    $tab2 = delkey_from_array($tab,0);
    echo "<pre>tab : ";
    print_r($tab);
    echo "<br><br>";
    print_r($tab2);
    echo "</pre>";
    ?>

  3. #3
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Je me cassais la tête sur un fonction que je faisais pour mon problème et tu arrives à tant! Merci ça fonctionne mieux que parfaitement

  4. #4
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Ah deux questions quand même:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array_splice($array_with_elements, $key_index[0], 1);
    A quoi correspond [0]? Pourquoi 0 et pas 8?
    Et avec array_splice, d'après ce que j'ai compris ça garde les éléments selectionnés par offset et length, mais la tu garde que une valeur (1) ?

  5. #5
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    salut,

    Si tu n'as pas besoin de garder l'ordre et l'association cle/valeurs des élément dans ton tableau tu peux essayer la fonction sort comme cela :

    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
     
    <?
    $A = array();
    $A[0] = array();
    $A[0][0] = 00;
    $A[0][1] = 01;
    $A[0][2] = 02;
    $A[0][3] = 03;
    $A[1] = array();
    $A[1][0] = 10;
    $A[1][1] = 11;
    $A[1][2] = 12;
    $A[1][3] = 13;
    $A[2] = array();
    $A[2][0] = 20;
    $A[2][1] = 21;
    $A[2][2] = 22;
    $A[2][3] = 23;
    echo "Avant \n";
    var_dump($A);
     
    unset($A[1]);
    sort($A);
     
     
    echo "\n";
    echo "\n";
    echo "Apres \n";
    var_dump($A);
    ?>
    Ce qui nous donne ceci :

    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
     
    Avant 
    array(3) {
      [0]=>
      array(4) {
        [0]=>
        int(0)
        [1]=>
        int(1)
        [2]=>
        int(2)
        [3]=>
        int(3)
      }
      [1]=>
      array(4) {
        [0]=>
        int(10)
        [1]=>
        int(11)
        [2]=>
        int(12)
        [3]=>
        int(13)
      }
      [2]=>
      array(4) {
        [0]=>
        int(20)
        [1]=>
        int(21)
        [2]=>
        int(22)
        [3]=>
        int(23)
      }
    }
     
     
    Apres 
    array(2) {
      [0]=>
      array(4) {
        [0]=>
        int(0)
        [1]=>
        int(1)
        [2]=>
        int(2)
        [3]=>
        int(3)
      }
      [1]=>
      array(4) {
        [0]=>
        int(20)
        [1]=>
        int(21)
        [2]=>
        int(22)
        [3]=>
        int(23)
      }
    }
    Bye

+ 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, 14h54
  2. Réponses: 1
    Dernier message: 28/03/2008, 21h37
  3. Réponses: 4
    Dernier message: 19/05/2006, 10h10
  4. supprimer une ligne dans un tableau
    Par sandball22 dans le forum C++Builder
    Réponses: 9
    Dernier message: 16/05/2006, 21h53
  5. Réponses: 8
    Dernier message: 21/04/2006, 18h18

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