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
- - 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
22
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 -

Dire « Merci » 5

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci 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
32
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
1
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.