Supprimer element d'un array et mettre à jour la clef [Résolu]

Messages postés
37
Date d'inscription
dimanche 24 février 2008
Dernière intervention
18 mai 2010
- 17 mars 2008 à 18:42 - Dernière réponse :  Toto - 22 mars 2014 à 11:07
Bonjour,
je souhaiterais supprimer element d'un array et décaler les clefs de cette array, voici mon code et mon probleme :
<?php
$array = array('element 0', 'element 1', 'element 2', 'element 3', 'element 4', 'element 5'); // mon tableau

// la fonction n'est pas bonne, c'est ce que je cherche
// il faudrait supprimer l'element positionner en 2 dans l'array ( l'element 2 )
// et que toutes les clefs décalent
// ( que l'element 3 est ensuite pour clef la valeur 2, l'element 4 la clef de valeur 3, ...)
unset($array[2]);

// On créé une boucle pour les résultats le probleme est que si on enleve l'element 2 l'element 5 n'apparait plus ...
for ($numero = 0; $numero < count($array); $numero++)
{
    echo "".$array[$numero]."

";

}
?>

Merci !
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Dernière intervention
27 avril 2012
21 juil. 2009 à 19:39
5
Merci
Salut,

J'y vais de mon grain de sel, sans doute plus simple et plus rapide (sur les "gros" tableaux) :

unset($array[2]);
$array = array_merge($array);


Le fait de ne passer qu'un seul tableau à array_merge réindexe le tableau.


Cordialement,


Kohntark -

Merci kohntark 5

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de kohntark
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
18 mars 2008 à 08:51
3
Merci
Hello,

il faut le faire toi-même :
unset($array[2]);
$iCpt = 0;
foreach($array as $mValeur) {
    $array[$iCpt] = $mValeur;
    $iCpt++;
}
print_r($array);
Commenter la réponse de malalam
Messages postés
1
Date d'inscription
mercredi 16 janvier 2008
Dernière intervention
21 juillet 2009
21 juil. 2009 à 13:16
1
Merci
J'ai eu quelque peine avec ces fameux tableau + suppression d'enregistrement.
petite explication de ma solution: on liste les éléments à partir de la case supprimée, on tire à chaque case l'enregistrement de la case "au dessus". J'espère que ça peut aider.

Je propose ma solution, pour plusieurs tableaux:

//mon_index=l'index à supprimer
$cpt=$mon_index;

while($cpt<sizeof($_SESSION['convention_achat_item'])){
$_SESSION['convention_achat_item'][$cpt]=$_SESSION['convention_achat_item'][$cpt+1];
$_SESSION['convention_achat_qty'][$cpt]=$_SESSION['convention_achat_qty'][$cpt+1];
$_SESSION['convention_achat_price'][$cpt]=$_SESSION['convention_achat_price'][$cpt+1];
$cpt++;
}
$cpt--;
unset($_SESSION['convention_achat_item'][$cpt]);
unset($_SESSION['convention_achat_qty'][$cpt]);
unset($_SESSION['convention_achat_price'][$cpt]);
Commenter la réponse de 5w17ch
1
Merci
Bonjour, il faut faire
sort($array)
Cordialement
Commenter la réponse de Toto

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.