Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: Keyser Soze le le 21-03-2007 a 22:50:56

Titre: Problème de type array multi-dimensions
Posté par: Keyser Soze le le 21-03-2007 a 22:50:56

Bonjour à tous.

Pour une appli de gestion des stocks, je crée un array à partir des données d'une table. Cet array, une fois créé, se présente ainsi :


Code:
array(array(102,array(10,11,13,14,49,50),array(1,2,5,6,7,8)),array(183,array(41,44,47,50),array(5,6,7,8)))


Lorsque je veux l'exploiter, je me retouve avec cette erreur :


Code:

function afficher_tableau($tableau)
{
// if (is_array($tableau))
// {
// on fait une boucle qui lit les éléments du tableau
foreach ($tableau as $cle=>$valeur)
{
// si l'un des éléments est lui même un tableau
// alors on applique la fonction à ce tableau
if(is_array($valeur))
{
// on affiche le nom de la clé et
// le début d'une liste pour
// décaler le contenu vers la droite
echo $cle.' : <ul>';

// ici se réalise la récursivité
// c'est à dire qu'on applique la fonction
// à l'élément en cours car c'est lui aussi un tableau
afficher_tableau($valeur);

// on ferme la liste
echo '</ul>';
}

// si ce n'est pas un tableau
// alors on affiche le contenu de l'élément
else
{
echo $cle.' = '.$valeur.' <br>';
}
}

// }
}

---------------------------
Résultat ->
Warning: Invalid argument supplied for foreach() in etc...


Logique, puisque lorsque je fais un gettype(), il me retourne qu'il s'agit d'un type String.

Forcer le type par un settype($chaine, "string"); ne fonctionne pas.

Des idées ?

Merci d'avance ! ;)

Edit : testé sous PHP 4.3.0 et 5.x

Titre: Re:Problème de type array multi-dimensions
Posté par: ToToMaStEr le le 23-03-2007 a 21:18:32

J'ai beaucoup de mal à lire ton code.
Essaye de l'arranger de facon horizontale principalement.

Merci

Titre: Re:Problème de type array multi-dimensions
Posté par: DrJekyll le le 17-08-2007 a 18:21:57

Si tu affiches ton tableau juste pour du "debug", tu peux aussi utiliser la fonction PHP "print_r($nomdutableau)".

Attention : cette fonction gère elle-même les tabulations et retours à la ligne, mais ils s'afficheront dans le code source de ta page web.
Si tu veux que tout s'affiche proprement, tu peux utiliser les balises HTML "pre" :



Code:
<?php
echo '<pre>';
print_r($nomdutableau);
echo '</pre>';
?>


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.