[RESOLU] Organisation clé array

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Organisation clé array

Re: [RESOLU] Organisation clé array

par Ryle » 18 juil. 2016, 17:19

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

Re: Organisation clé array

par eljeronimooo » 18 juil. 2016, 17:12

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: Organisation clé array

par Spols » 18 juil. 2016, 10:02

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.

Organisation clé array

par eljeronimooo » 17 juil. 2016, 21:28

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