Page 1 sur 1

Réindexation d'un array

Posté : 29 sept. 2016, 11:18
par fitnopk
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?

Re: Réindexation d'un array

Posté : 29 sept. 2016, 13:07
par Ryle
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 :)

Re: Réindexation d'un array

Posté : 29 sept. 2016, 14:18
par moogli
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 ;)


@+

Re: Réindexation d'un array

Posté : 29 sept. 2016, 15:38
par fitnopk
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