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 :

Effacer des valeurs dans un tableau associatif avec array_splice [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut Effacer des valeurs dans un tableau associatif avec array_splice
    Bonjour à tous,

    Je rencontre un petit problème que je n'arrive pas à régler.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for ($i = 0 ; $i < count($tableRouteurEricsson) ; $i++){
    	if ($tableRouteurEricsson[$i] == ""){
    		array_splice($tableRouteurEricsson,$i,1);
    	}
    }

    Voici le bout de code qui me permet d'effacer toutes les occurrences vides dans le tableau cependant, il en reste une qu'il ne veut pas effacer.

    Une idée ?

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    ça serait plutôt comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $a = array('a', 'b', 'c');
    unset($a[1]); // $a = array('a', 'c');
    Ensuite pour ce qui est des valeurs strictement vides
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $a = array('a', '', 'c');
    $b = array_filter($a, 'strlen'); // $b = array('a', 'c');
    ou plus généralement avec des tests spécifiques :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $b = array_filter($a, function($p) { return ($p !== ''); });

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    Justement j'ai lu sur un autre forum que array_splice était beaucoup plus intéressant que unset ou autre.

    Voici mon tableau au départ :

    Array ( [0] => Array ( [Routeur] => NGEBEONR01 ) [1] => Array ( [Routeur] => NGEBEONR02 ) [2] => [3] => Array ( [Routeur] => NGEBEONR01 ) [4] => Array ( [Routeur] => NGEBEONR02 ) [5] => [6] => Array ( [Routeur] => NGEBEONR01 ) [7] => Array ( [Routeur] => NGEBEONR02 ) [8] => [9] => Array ( [Routeur] => NGEBEONR01 ) [10] => Array ( [Routeur] => NGEBEONR02 ) [11] => [12] => Array ( [Routeur] => NGEBLANR01 ) [13] => Array ( [Routeur] => NGEBLANR02 ) [14] => [15] => Array ( [Routeur] => NGEBLANR01 ) [16] => Array ( [Routeur] => NGEBLANR02 ) [17] => [18] => Array ( [Routeur] => NGEBLANR01 ) [19] => Array ( [Routeur] => NGEBLANR02 ) [20] => [21] => Array ( [Routeur] => NGELACAR01 ) [22] => Array ( [Routeur] => NGELACAR02 ) [23] => [24] => Array ( [Routeur] => NGELACAR01 ) [25] => Array ( [Routeur] => NGELACAR02 ) [26] => [27] => Array ( [Routeur] => NGELACAR01 ) [28] => Array ( [Routeur] => NGELACAR02 ) [29] => [30] => [31] => [32] => [33] => Array ( [Routeur] => NGETOULS01 ) [34] => Array ( [Routeur] => NGETOULS02 ) [35] => [36] => Array ( [Routeur] => NGETOULS01 ) [37] => Array ( [Routeur] => NGETOULS02 ) [38] => [39] => Array ( [Routeur] => NGETOULS01 ) [40] => Array ( [Routeur] => NGETOULS02 ) [41] => [42] => Array ( [Routeur] => NGENAVR01 ) [43] => Array ( [Routeur] => NGENAVR02 ) [44] => [45] => Array ( [Routeur] => NGENAVR01 ) [46] => Array ( [Routeur] => NGENAVR02 ) [47] => [48] => Array ( [Routeur] => NGENAVR01 ) [49] => Array ( [Routeur] => NGENAVR02 ) [50] => [51] => )
    et le tableau après le parcours de la boucle :

    Array ( [0] => Array ( [Routeur] => NGEBEONR01 ) [1] => Array ( [Routeur] => NGEBEONR02 ) [2] => Array ( [Routeur] => NGEBEONR01 ) [3] => Array ( [Routeur] => NGEBEONR02 ) [4] => Array ( [Routeur] => NGEBEONR01 ) [5] => Array ( [Routeur] => NGEBEONR02 ) [6] => Array ( [Routeur] => NGEBEONR01 ) [7] => Array ( [Routeur] => NGEBEONR02 ) [8] => Array ( [Routeur] => NGEBLANR01 ) [9] => Array ( [Routeur] => NGEBLANR02 ) [10] => Array ( [Routeur] => NGEBLANR01 ) [11] => Array ( [Routeur] => NGEBLANR02 ) [12] => Array ( [Routeur] => NGEBLANR01 ) [13] => Array ( [Routeur] => NGEBLANR02 ) [14] => Array ( [Routeur] => NGELACAR01 ) [15] => Array ( [Routeur] => NGELACAR02 ) [16] => Array ( [Routeur] => NGELACAR01 ) [17] => Array ( [Routeur] => NGELACAR02 ) [18] => Array ( [Routeur] => NGELACAR01 ) [19] => Array ( [Routeur] => NGELACAR02 ) [20] => [21] => [22] => Array ( [Routeur] => NGETOULS01 ) [23] => Array ( [Routeur] => NGETOULS02 ) [24] => Array ( [Routeur] => NGETOULS01 ) [25] => Array ( [Routeur] => NGETOULS02 ) [26] => Array ( [Routeur] => NGETOULS01 ) [27] => Array ( [Routeur] => NGETOULS02 ) [28] => Array ( [Routeur] => NGENAVR01 ) [29] => Array ( [Routeur] => NGENAVR02 ) [30] => Array ( [Routeur] => NGENAVR01 ) [31] => Array ( [Routeur] => NGENAVR02 ) [32] => Array ( [Routeur] => NGENAVR01 ) [33] => Array ( [Routeur] => NGENAVR02 ) [34] => )
    Du coup ça marche très très bien sauf qu'il n'efface pas la dernière valeur...

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    bah là c'est encore plus simple :
    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
    $data = array(
        0 => array('Routeur' => NGEBEONR01),
        1 => array('Routeur' => NGEBEONR02),
        2 => null,
        3 => array('Routeur' => NGEBEONR01),
        4 => array('Routeur' => NGEBEONR02),
        5 => null,
        6 => array('Routeur' => NGEBEONR01),
        7 => array('Routeur' => NGEBEONR02),
        8 => null,
        9 => array('Routeur' => NGEBEONR01),
        10 => array('Routeur' => NGEBEONR02),
        11 => null,
        12 => array('Routeur' => NGEBLANR01),
        13 => array('Routeur' => NGEBLANR02),
        14 => null,
        15 => array('Routeur' => NGEBLANR01),
        16 => array('Routeur' => NGEBLANR02),
        17 => null,
        18 => array('Routeur' => NGEBLANR01),
        19 => array('Routeur' => NGEBLANR02),
        20 => null,
        21 => array('Routeur' => NGELACAR01),
        22 => array('Routeur' => NGELACAR02),
        23 => null,
        24 => array('Routeur' => NGELACAR01),
        25 => array('Routeur' => NGELACAR02),
        26 => null,
        27 => array('Routeur' => NGELACAR01),
        28 => array('Routeur' => NGELACAR02),
        29 => null,
        30 => null,
        31 => null,
        32 => null,
        33 => array('Routeur' => NGETOULS01),
        34 => array('Routeur' => NGETOULS02),
        35 => null,
        36 => array('Routeur' => NGETOULS01),
        37 => array('Routeur' => NGETOULS02),
        38 => null,
        39 => array('Routeur' => NGETOULS01),
        40 => array('Routeur' => NGETOULS02),
        41 => null,
        42 => array('Routeur' => NGENAVR01),
        43 => array('Routeur' => NGENAVR02),
        44 => null,
        45 => array('Routeur' => NGENAVR01),
        46 => array('Routeur' => NGENAVR02),
        47 => null,
        48 => array('Routeur' => NGENAVR01),
        49 => array('Routeur' => NGENAVR02),
        50 => null,
        51 => null
    );
    $data = array_values(array_filter($data));
    Je voudrais quand même te signaler que dans tes données de sortie tu traînes toujours des clés avec des valeurs vides ^^ : [20] => [21] =>
    Donc m'est d'avis que ta cuisine n'est pas très bonne ;-)

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    Bien vu !

    Ouais du coup ta solution marche à la perfection ! Merci beaucoup

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

Discussions similaires

  1. [WD10] Afficher des valeurs dans un tableau
    Par dj-julio dans le forum WinDev
    Réponses: 4
    Dernier message: 19/03/2014, 11h32
  2. Réponses: 3
    Dernier message: 12/06/2006, 12h04
  3. [Tableaux]Ajouter des valeurs dans un tableau
    Par Antoine1183 dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 03/04/2005, 13h41
  4. [VB6] recuperer des valeurs ds un tableau html avec vb!!
    Par leo13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 11/12/2004, 13h02
  5. Décaler des valeurs dans un tableau
    Par sh2003 dans le forum Langage
    Réponses: 6
    Dernier message: 20/03/2004, 16h01

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