Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Php tableau associatif, récupérer noms d'élém

Paul_Wi11iams, le mardi 8 avril 2008 à 13:15:59
Bonjour,
C'est le printemps et je fais le grand ménage dans un site.
Pour l'instant, chaque module de php est affublé d'une fonction de déboguage différente.
Chaque fonction de déboguage reçoit en arguement, un tableau associatif d'un même nom, disons $arr, mais les éléments du tableau portent des noms particuliers selon le module en question.
Pour standardiser ce déboguage, je souhaite en faire une fonction unique.
Est-il possible de récupérer les NOMS des éléments d'un tableau ?
A partir de ceci :

<html>
<body>
<?php
$arr=array();
$arr[premier]='un';
$arr[deuxieme]='deux';
$arr[troisieme]='trois';
deboguer ($arr);
/* ======================================= */;
function deboguer ($arg)
{
foreach ($arg as $valeur)
{
/* Ici, ne sais pas obtenir $nomdelement, le nom de l'élément */;
echo '<!- -'.$nomdelement.'=' . $valeur . '- ->
';
} /*fin foreach*/;
} /*fin deboguer*/;
/* ======================================= */;
?>
</body>
</html>

J'aimerais afficher ceci :
<!- - premier=un - ->
<!- - deuxieme=deux - ->
<!- - troisieme=trois - ->

J'ai cherché un moment sur W3 et ailleurs, mais n'ai pas encore vu de solution.
Merci pour toute idée

Paul_Wi11iams.

PS Pour rendre cette question lisible, j'y ai éffacé l'affichage de __line__ avec le nom du module qui en fait appel, un switch pour commander son activation et un décompte de cycles d'affichage.
Configuration: Windows XP
Firefox 2.0.0.13
Répondre à Paul_Wi11iams  Signaler ce message aux modérateurs Aller au dernier message

1


  • 2
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
giheller, le mardi 8 avril 2008 à 14:37:18
Bonjour,



$arr=array();
$arr['premier']='un';
$arr['deuxieme']='deux';
$arr['troisieme']='trois';

/* ======================================= */;

foreach ($arr as $k=> $v)
{
/* Ici, ne sais pas obtenir $nomdelement, le nom de l'élément */;

echo $k ."=". $v."<br>";

} /*fin foreach*/;

JL,  m'enfin c'est juste mon avis @+
se faire aider, n'est pas faire faire son travail
Répondre à giheller

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Paul_Wi11iams, le mardi 8 avril 2008 à 22:48:16
D'abord, merci Giheller.
Le code (en php 5,5 chez OVH) fonctionne bien tant que le tableau est généré à l'intérieur de la fonction:

$entr_test = array();
$entr_test[dabord]='jkl';$entr_test[ensuite]='mno';$entr_tes­t[finalement]='pqr';
echo 'ENTR+';
foreach ($entr_test as $nom => $valeur)
{
echo $nom.'='.$valeur.' ';
};

En sortie, j'obtiens bien ceci:
ENTR+dabord=jkl ensuite=mno finalement=pqr

Mais dès qu'il s'agît d'une variable en entrée de la fonction en cours, j'obtiens


Warning: Invalid argument supplied for foreach() in /home.32/c/y/b/cyberthe/www/cybedbog.phpon line 49

Les forums le disent, un tel message dans une fonction, vient d'un argument qui n'a pas été perçu comme un tableau.
Pourtant la variable dans la page qui a fait appel à cette fonction l'a bien défini comme tableau, et d'autres tableaux passent très bien dans les arguments ailleurs dans le site.
Au début de la fonction, j'ai même tenté de "forcer" les arguments en tableau par défaut comme ceci :

function cybedbog(entr=array('abc'),$sort=array('def'),$v=array('ghi'))
{ /* le contenu de la fonction qui est décrit ci avant */; };

Le résultat est inchangé…

Avez-vous une idée ?

Paul Williams
Répondre à Paul_Wi11iams

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
giheller, le mercredi 9 avril 2008 à 09:52:39
bonjour,

faites un essai avec :
des guillemets dans les postes du tableau.

$entr_test['dabord']='jkl';$entr_test['ensuite']='mno';$entr­_test['finalement']='pqr';

il y apeut être une différence entre php4 et php5 au niveau du passge des variables car un passe les valeurs, l'autre passe les pointeurs.

JL,  m'enfin c'est juste mon avis @+
se faire aider, n'est pas faire faire son travail
Répondre à giheller

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Paul_Wi11iams, le mercredi 9 avril 2008 à 21:37:24
Bonjour,
C'est la suggestion de Giheller qui m'a mis sur la bonne piste, et c'est un détail que j'avais oublié de préciser qui était à l'origine du problème d'un tableau traité comme une variable.
L'argument $entr de la fonction appelante est un tableau qui est déjà passé d'une fonction à une autre fonction (sur trois niveaux !), à partir d'une base Mysql.
Croyant que php était un interpréteur, je ne savais pas qu'il y a une étape de compilation, ce qui fait qu'il n'a pas les données sous la main au moment de préparer.
Il m'a suffi, au début de chaque fonction, de déclarer les tableaux tels
$entr = array(). Du bon vieux COBOL.
Merci encore.
Paul
Répondre à Paul_Wi11iams
Tableau associatif php (Résolu) Bonjour, nouveau dans ce forum j'espere trouver une aide ici . mon probleme conserne les tableaux et / ou tableaux associatif en PHP. j 'expose mon problem, j'ai 3 tableaux de 3 tailles differentes : soit $tab1 = array... www.commentcamarche.net/forum/affich-5999500-tableau-associatif-php
Requete MySQL => tableau associatif PHP (Résolu) Bonjour, Je fais encore une fois appel a vous pour m'eclairer sur un point ! qui est de recuperer le resultat d 'une requete MySQL sous forme de tableau associatif PHP . pour exemple: soit la requete SQL suivante . $sql ="SELECT... www.commentcamarche.net/forum/affich-6043182-requete-mysql-tableau-associatif-php
Récupérer des éléments supprimer... (Résolu) Bonjour je voudrais savoir s'il est possible de récupérer des éléments qui on été supprimé avec la corbeille ? merci d' avance. www.commentcamarche.net/forum/affich-3457533-recuperer-des-elements-supprimer
Trier un tableau sans utiliser la fonction sortTrier un tableau sans utiliser la fonction sort D'abord on initialise une variable $max avec la 1ère valeur de tableau. Ensuite on va faire une boucle tant que le tableau contient encore des éléments. C'est avec la fonction splice qui a le rôle... www.commentcamarche.net/faq/sujet-7685-trier-un-tableau-sans-utiliser-la-fonction-sort
Inverser les éléments d'un tableau -Récursivité-Voici une procédure récursive qui permet d’inverser les éléments d’une partie d’un tableau compris entre la position p et n : Procedure Inverser (Var t : Tab; p, n : Integer); Var aux : Real; Begin If p < n Then ... www.commentcamarche.net/faq/sujet-8811-inverser-les-elements-d-un-tableau-recursivite
Décaler les éléments d'un tableau (Rotation) -Récursivité-Voici une procédure récursive qui permet de décaler tous les éléments d’un tableau d’une position à droite à partir de la position p Procedure Decaler (Var t : Tab; p, n : integer); Begin If p www.commentcamarche.net/faq/sujet-8810-decaler-les-elements-d-un-tableau-rotation-recursivite
Mettre un fichier .csv dans un un tableau PHP (Résolu)Bonjour, J'ai un problème je voudrais enfaite faire code qui me permet de prendre les donnée d'un fichier en .csv et de les mettre dans un tableau en .php J'arrive a extraire les donnée mais pas a les mettre dans un tableau associatif... www.commentcamarche.net/forum/affich-6871358-mettre-un-fichier-csv-dans-un-un-tableau-php
[Php] petite question sur les tableaux (Résolu)Est il correct d'écrire en php $tab_groupes[$i] pour récupérer l'élément associé au contenu de la variable i (ici un simple indice) dans le tableau tab_groupes ? merci www.commentcamarche.net/forum/affich-1683796-php-petite-question-sur-les-tableaux
PB PHP passer une variable en parametre d'url (Résolu)Bonjour, Je suis débutant en PHP. J'ai une page PHP qui liste le noms de toutes les photos présentes sur mon site. J'aimerais créer un lien a cote de chaque photo pour la visualiser. Je récupére bien le nom de la photo dans la variable... www.commentcamarche.net/forum/affich-5450797-pb-php-passer-une-variable-en-parametre-d-url
Javascript - Les tableauxIntroduction à la notion de tableau Les variables de Javascript ne permettent de stocker qu'une seule donnée à la fois. Or, étant donné qu'il est souvent utile de manipuler de nombreuses données, le concept de variable se révéle parfois... www.commentcamarche.net/contents/javascript/jstab.php3
PHP - Connexion à un annuaire LDAPIntroduction à LDAP PHP permet la connexion et l'envoi de requêtes sur un annuaire LDAP, c'est-à-dire un serveur permettant de stocker des informations de manière hiérarchique. Un serveur LDAP est conçu pour être capable de gérer les opérations... www.commentcamarche.net/contents/php/phpldap.php3
PHP - Parser du XMLIntroduction à XML PHP permet l'analyse syntaxique (parsage ou parsing en anglais) d'un document XML. Le langage XML (eXtensible Markup Language, traduisez Langage à balises extensibles) est un métalangage, c'est-à-dire un langage permettant de... www.commentcamarche.net/contents/php/phpxml.php3