[RESOLU] Réindexation d'un array

Eléphanteau du PHP | 40 Messages

29 sept. 2016, 11:18

Bonjour,

A la fin de mon script PhP, je fais un dernier traitement d'un tableau que je vais export en CSV afin de vérifier que les cases importantes soient remplis. Du coup, si elles ne le sont pas, je unset l'index associé, ce qui à la fin me laisse avec un tableau plein de trous dans mes $key numériques générées automatiquement au remplissage.
Il me semblait avoir vu une fonction qui permettait de réattribuer des valeurs numériques aux $keys afin qu'elles se suivent mais je ne la retrouve plus, ou j'ai halluciné.
Sinon comment faire? Est-ce que modifier la valeur d'un $key dans un foreach fonctionne?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

29 sept. 2016, 13:07

Bonjour,

Tu peux utiliser la fonction array_values() pour récupérer les valeurs de ton tableau et ainsi les réindéxer.

Sinon tu peux aussi juste ajouter un compteur dans ta boucle foreach que tu incrémentes à chaque itération et utiliser cette variable plutôt que la valeur contenue dans ta variable $key :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

29 sept. 2016, 14:18

salut,

voir aussi la pertinence de ces clefs, même avec des trous le tableau est toujours dans le mêmes ordre du coup ça change rien pour le csv derrière ;)

voila c'est tout ;)


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 40 Messages

29 sept. 2016, 15:38

salut,

voir aussi la pertinence de ces clefs, même avec des trous le tableau est toujours dans le mêmes ordre du coup ça change rien pour le csv derrière ;)

voila c'est tout ;)


@+
C'est juste qu'au moment de l'écriture dans le fichier, j'utilise le $key / count($array) * 100 pour avoir un % d'avancement du coup à la fin je me retrouvais à 118% ou des trucs comme ça
Certe je pourrai créer un compteur mais bon pas envie de déclarer un compteur juste pour ça quand je peux utiliser $key x)
Bonjour,

Tu peux utiliser la fonction array_values() pour récupérer les valeurs de ton tableau et ainsi les réindéxer.
Sur le coup c'est vrai que j'ai pas penser que le nouvel array créé serait réindexé numériquement xD
Merci