Page 1 sur 1

Organisation clé array

Posté : 17 juil. 2016, 21:28
par eljeronimooo
Bonjour à tous :)

Je cherche une fonction pour ré-organiser les clés d'un array en PHP et je ne trouve pas :(

Exemple :
$array('test1','test2','test3');

$array[1] = "";
var_dump($array); // Renvoi : 0=> 'test1' ; 1=> '' ; 2=> 'test3'

$array = array_filter($array);
var_dump($array); // Renvoi : 0=> 'test1' ; 2=> 'test3'
Ce que je souhaite c'est avoir :
var_dump($array); // Renvoi : 0=> 'test1' ; 1=> 'test3'
Merci par avance

Re: Organisation clé array

Posté : 18 juil. 2016, 10:02
par Spols
Il y a plus simple pour supprimer un élément, unset($array[1]); mais ca te donnera le même type de tableau à l'arrivée.

si un classement alphabétique, te convient, il y a la fonction sort()
sinon il faudra coder la fonction toi même, tu boucle sur le premier tableau en remplissant un autre et tu retourne le second.

Re: Organisation clé array

Posté : 18 juil. 2016, 17:12
par eljeronimooo
Bon j'avais pourtant souvenir qu'il exister une fonction pour faire ce travail plus proprement, je vais donner une solution via une boucle
$array('test1','test2','test3');
$array[1] = "";
for($i=0; $i <= (count($array) - 1); $i++) {
	if(!empty($array[$i])){
		$array_bis[] = $array[$i];
	}
}
$array = $array_bis;

Re: [RESOLU] Organisation clé array

Posté : 18 juil. 2016, 17:19
par Ryle
Bonjour,

Comme suggéré par Spols, le mieux est d'utiliser unset() pour supprimer une entrée du tableau plutôt que de lui donner la valeur <chaîne vide>.
Et une fois que cela est fait, tu peux utiliser array_values() pour récupérer les valeurs de ton tableau simplement :
$array = Array('test1','test2','test3');
unset($array[1]); // supprime l'élément à l'index 1
$array = array_values($array); // remplace le contenu de la variable par un tableau ne contenant que les valeurs restantes