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] comment faire pour que la valeur [2] devienne [1], [3] devienne [2], etc


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Points : 33
    Points
    33
    Par défaut [Tableaux] comment faire pour que la valeur [2] devienne [1], [3] devienne [2], etc
    Bonjour !
    Voilà, j'ai un problème quand je supprime une entrée d'un array.
    Par exemple $variable est un array. On supprime $variable[1].
    Le problème, c'est qu'ensuite (avec un print_r), il affiche
    Array ( [0] => machin1 [2] => machin2 [3] => machin3 ) et pas le [1] évidemment.

    Or je voudrais que la valeur [2] devienne [1], que la [3] devienne [2], etc

    J'espère avoir été assez clair, sinon, n'hésitez pas à me poser des questions.


    Merci d'avance .

  2. #2
    Expert éminent
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Par défaut
    Fait toi une fonction perso... c'est pas bien compliqué...
    Par exemple (syntaxe non garantie....)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for($i=1;$i<lenght-1;$i++) $tab[$i] = $tab[$i+1];
    Mes Tutos DirectX, OpenGL, 3D : http://raptor.developpez.com/

  3. #3
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    problème ultra-classique d'algo ...
    le mieux est de ne pas effacer l'element n que tu veux supprimer, mais de l'écraser par l'element n+1, puis ensuite ecraser n+1 par n+2 etc ... jusqu'a la fin du tableau.
    Tu n'a alors plus qu'a supprimer le dernier élément du tableau.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Points : 33
    Points
    33
    Par défaut
    Merci de vos réponses si rapide ! Pouvez vous me donner un lien ou autre chose pour m'éguiller ?

    Merci

  5. #5
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Citation Envoyé par ok07
    Merci de vos réponses si rapide ! Pouvez vous me donner un lien ou autre chose pour m'éguiller ?

    Merci
    Pour t'éguiller non par contre pour t'aiguiller je pense que le post de raptor70 est largement suffisant, après à toi de voir quel comportement tu veux que ton application ait (valeurs à écraser , à sauvegarder etc.)
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    La fonction 'array_splice()' fait ça très bien toute seule.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    	$tableau = array('toto', 'tata', 'autre', 'papa');
    	print_r($tableau);
    	echo '<br><br>';
    	array_splice($tableau, 1, 1);
    	print_r($tableau);
    ?>
    Tous les détails ici :
    http://fr.php.net/manual/fr/function.array-splice.php

  7. #7
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    si le but est juste de réindexer le tableau apres une suppression, je conseille la magnifique fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tab = array_values($tab);
    on peut difficilement faire plus court ;o)

    maintenant, je prefere les tableaux associatifs et les foreach, donc je n'ai en général jamais besoin des indices

Discussions similaires

  1. Réponses: 5
    Dernier message: 31/01/2008, 17h05
  2. Réponses: 6
    Dernier message: 20/05/2006, 10h42
  3. [VB6]Comment faire pour que le caption d'une ARProgressBar..
    Par MegaBigBoss dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 02/04/2006, 20h42
  4. comment faire pour que plusieurs user utilise mem macro?
    Par megapacman dans le forum Access
    Réponses: 4
    Dernier message: 27/03/2006, 16h55
  5. CSS: comment faire pour que mes coins soit arrondi
    Par pierrot10 dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 16/02/2006, 12h08

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