array suppression elements vides

Invité
Invité n'ayant pas de compte PHPfrance

15 janv. 2008, 13:34

Bonjour,

Quelle fonction utiliser pour supprimer toutes les clés d'un tableau dont les valeurs sont vides?

Mammouth du PHP | 1339 Messages

15 janv. 2008, 14:44

<?php

	$array = array(1, 2, '', 4, 5, 6, '', 7, 8, 9);

	foreach($array as $a => $v) {
	
		if($v == "") unset($array[$a]);
		
	}
	
	print_r($array);
	
?>
Bon sinon tu me fais un message privé et on se fait un TeamViewer

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

15 janv. 2008, 15:08

Si ton tableau n'est pas associatif, tu peux également faire un array_diff() avec un second tableau contenant juste une chaine vide :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

15 janv. 2008, 16:06

merci pour vos réponses. Je suis pas un expert et j'ai du mal à visualiser la deuxième posibilité. est-il possible d'avoir un exemple?

Eléphant du PHP | 259 Messages

15 janv. 2008, 16:24

Hello,

Tiens un exemple de la méthode de Ryle :
<?php

$ar = array( 'a'=>'toto' , 'b'=>null , 'c' => 'coincoin' , 'd'=>null );

$ar = array_diff( $ar , array( null ) );

print_r( $ar );

?>
Bon courage :)

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

15 janv. 2008, 16:24

Celui donné dans la documentation de la fonction me semble pas mal nan ? Suffit de remplacer $array2 par un tableau contenant juste une valeur vide (array('')) pour l'adapter à ton cas et ça devrait te donner une bonne idée de la chose :)

Edit : Aïta ! Grillé :(
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...