Problème array en PHP

Résolu/Fermé
atout1 Messages postés 216 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 17 juin 2011 - Modifié par atout1 le 10/01/2011 à 12:29
atout1 Messages postés 216 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 17 juin 2011 - 10 janv. 2011 à 14:29
Bonjour, tout le monde ca va ?

j'ai un chaine de caractère qui prend la forme suivant :1::2::0::3:

j'aimerais mettre les valeurs (1,2,0,3) dans un array donc j'ai appliqué le code suivant :

$chaine = ":1::2::0::3:";
$tableau = explode(":", $chaine);
foreach ($tableau as $k)
{
if(empty($k))
unset($tableau[$k]);
}
$tableau = array_filter($tableau);
print_r($tableau);
le problème est que après l'exécution de ce code : j'ai un Array ( [1] => 1 [3] => 2 [7] => 3 ) qui contient 1 2 3 mais pas le 0, comment faire pour laisser le 0 ??? Merci pour votre aide

A voir également:

1 réponse

MyTux Messages postés 222 Date d'inscription mardi 29 janvier 2008 Statut Membre Dernière intervention 26 mars 2013 44
10 janv. 2011 à 12:29
Bonjour,

C'est dû à la fonction empty et de ton 0. Explication ici:
https://www.php.net/manual/en/function.empty.php

Bien à toi,
MyTux.
0
atout1 Messages postés 216 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 17 juin 2011
10 janv. 2011 à 12:34
Merci, pour votre réponse

donc il n'existe pas un façon pour laisser le 0 dans l'array
0
MyTux Messages postés 222 Date d'inscription mardi 29 janvier 2008 Statut Membre Dernière intervention 26 mars 2013 44
10 janv. 2011 à 12:43
Tu peux essayer de caster tes chiffre en string.

[...]
foreach ($tableau as $k)
{
if(empty(string($k)))
    unset($tableau[$k]);
} 

[...]

N'étant pas développeur, je ne peux pas te garantir le résultat, mais ça coûte rien d'essayer.

Bien à toi,
MyTux.
0
atout1 Messages postés 216 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 17 juin 2011
10 janv. 2011 à 14:29
problème résolu, en fait jai enlever array_filter et j'ai créer une fonction qui boucle sur le tableau et supprime tout les champs vide
voici le code :
$chaine = ":1::2::0::3:";
$tableau = explode(":", $chaine);
$nb = count($tableau);
for($i = 0; $i <=$nb; $i++)
{
if($tableau[$i] == "")
{
unset($tableau[$i]);
}
}
0