Discussion:
premier element d'un tableau
(trop ancien pour répondre)
Marc Valette
2007-06-21 16:20:55 UTC
Permalink
bonjour,
j'ai un tableau comme ceci:
$label = array("courrier" => "reception", "emission" => "emission");

je cherche à avoir le premier élément et pour l'instant, je fais un
foreach en faisant un break tout de suite mais il y a sans aucun doute
moyen de faire mieux pour adresser le premier élément de $label
merci d'avance,
Olivier Miakinen
2007-06-21 16:43:13 UTC
Permalink
Post by Marc Valette
$label = array("courrier" => "reception", "emission" => "emission");
je cherche à avoir le premier élément et pour l'instant, je fais un
foreach en faisant un break tout de suite mais il y a sans aucun doute
moyen de faire mieux pour adresser le premier élément de $label
merci d'avance,
http://fr.php.net/manual/fr/function.each.php
http://fr.php.net/manual/fr/function.reset.php
Marc Valette
2007-06-21 18:44:44 UTC
Permalink
Post by Olivier Miakinen
http://fr.php.net/manual/fr/function.each.php
http://fr.php.net/manual/fr/function.reset.php
parfait, merci bien
Olivier Miakinen
2007-06-21 19:54:35 UTC
Permalink
Post by Marc Valette
Post by Olivier Miakinen
http://fr.php.net/manual/fr/function.each.php
http://fr.php.net/manual/fr/function.reset.php
parfait, merci bien
Encore plus simple :
http://fr.php.net/manual/fr/function.current.php
kurtz le pirate
2007-06-21 18:44:44 UTC
Permalink
Post by Marc Valette
bonjour,
$label = array("courrier" => "reception", "emission" => "emission");
je cherche à avoir le premier élément et pour l'instant, je fais un
foreach en faisant un break tout de suite mais il y a sans aucun doute
moyen de faire mieux pour adresser le premier élément de $label
merci d'avance,
habitué et beaucoup plus à l'aise en perl qu'en php, pour moi, ce que tu
cites n'est pas un tableau. c'est plutôt un 'hash' dont on obtient les
valeurs au travers de clés et pas d'indices... donc 'premier élément'
n'as pas de sens.
--
klp
Marc Valette
2007-06-21 19:54:35 UTC
Permalink
Post by kurtz le pirate
Post by Marc Valette
bonjour,
$label = array("courrier" => "reception", "emission" => "emission");
je cherche à avoir le premier élément et pour l'instant, je fais un
foreach en faisant un break tout de suite mais il y a sans aucun doute
moyen de faire mieux pour adresser le premier élément de $label
merci d'avance,
habitué et beaucoup plus à l'aise en perl qu'en php, pour moi, ce que tu
cites n'est pas un tableau. c'est plutôt un 'hash' dont on obtient les
valeurs au travers de clés et pas d'indices... donc 'premier élément'
n'as pas de sens.
alors, on va te le retraduire: premier élément de l'énumération mais
c'est vraiment pour martyriser l'arrière train des mouches :-)
Olivier Miakinen
2007-06-21 19:54:35 UTC
Permalink
Post by kurtz le pirate
habitué et beaucoup plus à l'aise en perl qu'en php, pour moi, ce que tu
cites n'est pas un tableau.
C'est pourtant bien un tableau, dit « associatif ».
Post by kurtz le pirate
c'est plutôt un 'hash' dont on obtient les
valeurs au travers de clés et pas d'indices...
Oui, aussi.
Post by kurtz le pirate
donc 'premier élément' n'a pas de sens.
Et pourtant si. Les éléments du tableau associatif se présentent dans un
ordre donné qui, même s'il est arbitraire, ne change pas au hasard. Tu
peux même trier un tableau associatif en conservant l'association entre
les clés et les valeurs (cf. les fonctions asort, arsort, ksort, krsort
et uksort).
Bruno Desthuilliers
2007-06-22 08:39:31 UTC
Permalink
Post by kurtz le pirate
Post by Marc Valette
bonjour,
$label = array("courrier" => "reception", "emission" => "emission");
je cherche à avoir le premier élément et pour l'instant, je fais un
foreach en faisant un break tout de suite mais il y a sans aucun doute
moyen de faire mieux pour adresser le premier élément de $label
merci d'avance,
habitué et beaucoup plus à l'aise en perl qu'en php, pour moi, ce que tu
cites n'est pas un tableau.
c'est un tableau associatif (mapping, dictionnaire etc).
Post by kurtz le pirate
c'est plutôt un 'hash'
Les tables de hachages sont un des moyens - le plus utilisé, mais pas le
seul - d'implémenter un tableau associatif.
Post by kurtz le pirate
dont on obtient les
valeurs au travers de clés et pas d'indices... donc 'premier élément'
n'as pas de sens.
Les "tableaux" PHP sont un peu bâtards. Ce sont des essentiellement des
tableaux associatifs ordonnés capable de s'auto-indexer (avec une clé
numérique auto-incrémentée) quand on ajoute un élément sans préciser la
clé - bref, on peut les utiliser indifférement comme des tableaux
associatifs ou comme des tableaux séquentiels. Dans ce contexte, la
notion de "premier élément" a bien un sens.
kurtz le pirate
2007-06-22 17:21:21 UTC
Permalink
Post by Bruno Desthuilliers
Les "tableaux" PHP sont un peu bâtards. Ce sont des essentiellement des
tableaux associatifs ordonnés capable de s'auto-indexer (avec une clé
numérique auto-incrémentée) quand on ajoute un élément sans préciser la
clé - bref, on peut les utiliser indifférement comme des tableaux
associatifs ou comme des tableaux séquentiels. Dans ce contexte, la
notion de "premier élément" a bien un sens.
la je comprends mieux. j'ai donc confondu des vrais "hash" avec les
tableaux associatifs bâtards de php.
Post by Bruno Desthuilliers
Et pourtant si. Les éléments du tableau associatif se présentent dans un
ordre donné qui, même s'il est arbitraire, ne change pas au hasard. Tu
peux même trier un tableau associatif en conservant l'association entre
les clés et les valeurs (cf. les fonctions asort, arsort, ksort, krsort
et uksort).
un ordre 'donné' oui ok. mais le premier élément entré n'est pas
forcément le premier élément du "tableau".
Post by Bruno Desthuilliers
alors, on va te le retraduire: premier élément de l'énumération mais
c'est vraiment pour martyriser l'arrière train des mouches :-)
bruno précise que ces "tableaux" php ne sont pas de vrais tableaux
indexés. donc dans le cas de php tu as raison. dans le cas de vrais
"hash" ta question n'as pas de sens.
--
klp
Marc Valette
2007-06-22 19:51:22 UTC
Permalink
Post by kurtz le pirate
bruno précise que ces "tableaux" php ne sont pas de vrais tableaux
indexés. donc dans le cas de php tu as raison. dans le cas de vrais
"hash" ta question n'as pas de sens.
je veux le premier élément de l'énumération et je ne demande rien
d'autre, point barre
Jean-Jacques SOLARI
2007-06-22 22:33:11 UTC
Permalink
Post by Marc Valette
je veux le premier élément de l'énumération et je ne demande rien
d'autre, point barre
Marc,

Peut-être array_shift:

<http://fr.php.net/manual/fr/function.array-shift.php>

qça,

JJS.
Antoine Polatouche
2007-06-23 11:14:04 UTC
Permalink
Post by Marc Valette
je veux le premier élément de l'énumération et je ne demande rien
d'autre, point barre
$tableau[0] et on n'en parle plus ?
Bruno Desthuilliers
2007-06-29 11:25:27 UTC
Permalink
Post by Antoine Polatouche
Post by Marc Valette
je veux le premier élément de l'énumération et je ne demande rien
d'autre, point barre
$tableau[0] et on n'en parle plus ?
Bin si. $tableau[0] retourne non pas "le premier" élément du tableau,
mais l'élément dont la clé est "0".

Bruno Desthuilliers
2007-06-25 21:59:36 UTC
Permalink
Post by kurtz le pirate
Post by Bruno Desthuilliers
Les "tableaux" PHP sont un peu bâtards. Ce sont des essentiellement des
tableaux associatifs ordonnés capable de s'auto-indexer (avec une clé
numérique auto-incrémentée) quand on ajoute un élément sans préciser la
clé - bref, on peut les utiliser indifférement comme des tableaux
associatifs ou comme des tableaux séquentiels. Dans ce contexte, la
notion de "premier élément" a bien un sens.
la je comprends mieux. j'ai donc confondu des vrais "hash" avec les
tableaux associatifs bâtards de php.
Tu a confondu une implémentation d'un tableau associatif (la plus
courante) avec une autre. J'ai utilisé le terme de "bâtard" parce que
les tableaux PHP peuvent fonctionner *simultanément* comme des tableaux
séquentiels indexés et comme des tableaux associatifs.
Post by kurtz le pirate
Post by Bruno Desthuilliers
Et pourtant si. Les éléments du tableau associatif se présentent dans un
ordre donné qui, même s'il est arbitraire, ne change pas au hasard. Tu
peux même trier un tableau associatif en conservant l'association entre
les clés et les valeurs (cf. les fonctions asort, arsort, ksort, krsort
et uksort).
un ordre 'donné' oui ok. mais le premier élément entré n'est pas
forcément le premier élément du "tableau".
Tu a essayé ? En PHP, je veux dire ?
Post by kurtz le pirate
Post by Bruno Desthuilliers
alors, on va te le retraduire: premier élément de l'énumération mais
c'est vraiment pour martyriser l'arrière train des mouches :-)
bruno précise que ces "tableaux" php ne sont pas de vrais tableaux
indexés. donc dans le cas de php tu as raison. dans le cas de vrais
"hash" ta question n'as pas de sens.
Ce que tu appelles un "hash" est un tableau associatif *basé sur* une
table de hachage. Le "hash" lui-même (qui par ailleurs ne se fume pas)
est le résultat de l'application de la fonction de hachage à l'élément
qui doit servir de clé dans le tableau associatif. Accessoirement, c'est
l'utilisation de cette fonction de hachage qui fait qu'un tableau
associatif basé sur une table de hachage est a priori ordonnée de façon
arbitraire (puisque c'est la fonction de hachage qui détermine la
relation d'ordre) - je dis 'a priori' car certaines tables de hachage
peuvent jouer avec l'ordre en cas de collision (hachage similaire pour
deux clés différentes). Bref, même dans le cas d'une table de hachage,
il peut y avoir une relation d'ordre (même si elle est inexploitable
dans la pratique).
Continuer la lecture sur narkive:
Loading...