Première valeur d'un tableau associatif ?

hakeem69 Messages postés 30 Date d'inscription vendredi 22 juillet 2005 Statut Membre Dernière intervention 7 mai 2009 - 19 mars 2008 à 22:58
 tgra78 - 18 oct. 2018 à 12:31
Bonjour,


Je vousdrais SVP connaître la fonction (si elle existe) qui permet trouver la 1ere valeur d’un tableau associatif.


Pour un tableau simple, c’est très facile : $tableau[0] ;


Mais visiblement ca na fonctionne pas avec les tableau avec : clé => valeurs.



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




J’ai chercher un peu partout sans trouver


Quelqun  a une idée ?


Cdl, Hakim.
A voir également:

11 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 mars 2008 à 08:14
Oups, 1ère valeur, pas première clef : remplacer key() par current().
3
Salut
Dpuis PHP 7.3, tu peux utiliser $TAB[array_key_first($TAB)]
sinon avant il faut faire $TAB[array_keys($TAB)[0]] avec un isset() pour etre sur que cela existe.
2
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
20 mars 2008 à 00:00
<?php
$arr = array('cle_1'=>'valeur_1', 'cle_2'=>'valeur_2');
$new_arr = array_keys( $arr );
echo $new_arr[0]; // ça donne "cle_1"
?>
voilà...

Au début, on essaye de trouver une solution qui marche, et puis on veut la meilleure.
1
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
19 mars 2008 à 23:05
tableau['clé']...

Au début, on essaye de trouver une solution qui marche, et puis on veut la meilleure.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hakeem69 Messages postés 30 Date d'inscription vendredi 22 juillet 2005 Statut Membre Dernière intervention 7 mai 2009
19 mars 2008 à 23:10
Merci amezghal,
mais la ou ce se complique c’est que je ne connais pas le clé de la première valeur du tableau...
Un solution ?
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
19 mars 2008 à 23:12
Salut,

Dans un tableau associatif, il n'y a pas vraiment de "première valeur", puisque justement, les éléments ne sont pas triés.

Cependant, dans la mémoire, ils sont effectivement dans un certain ordre... Mais je ne sais pas si cet ordre est constant ou lié aux registres mémoire utilisés par PHP.

Tu peux toujours essayer foreach et sortir de la boucle dès la première valeur récupérée... Mais je ne suis pas certain que ce soit une manière de faire vraiment pertinente...

Neige
0
hakeem69 Messages postés 30 Date d'inscription vendredi 22 juillet 2005 Statut Membre Dernière intervention 7 mai 2009
19 mars 2008 à 23:57
Bonjour Neige !

je croiq pourtant qu'un tableau associatif à bien un ordre.

mon tableau $tableau contient exclusivement des valeurs numériques.
j'effectue un arsort($tableau);
et ca fonctionne très bien !

à présent j'aimerais obtenir la première valeur (donc la plus elevée) mais... je n'y arrive pô.
Si qq1 connais sinon une fonction qui retourne la plus grande valeur d'un tableau, elle fera également mon bonheur.
merci à tous en tout cas.
Hakim
0
hakeem69 Messages postés 30 Date d'inscription vendredi 22 juillet 2005 Statut Membre Dernière intervention 7 mai 2009
20 mars 2008 à 01:28
Merci infiniement Amezghal, mais ce que je veux c'est la valeur, pas la clé.

C'est pas grave, j'ai trouvé une solution, mais je ne sais pas ce que ca va donner en production.

mes clés et mes valeures étaient issues d'une requete Sql.

à partir de cette requête, au lieu de créer un seul tableau associatif comme jusqu'à présent :
clé = titre (champ dans ma table)
valeur = nombre de clique (autre champs dans ma table)

j'ai créé deux tableaux simple (juste les valeurs) 

$moyen1[] = mes titres
$moyen2[] = mes cliques



//au passage je pique le plus grand nombre de clique (en gros, ce que je cherche depuis le début) avec :

$max =  $moyen2[0];

// et je créer par la suite un tableau associatif avec :



$grand_tabeau = array_combine($moyen1, $moyen2);

je me retrouve donc avec un grand tableau associatif propre et j'ai au passage pris la plus grande valeure numérique de $moyen2[] (mon nombre de clique)

j'ai donc réussi à faire un beau script PHP avec des graphiques satistique en CSS (adieu library GD) du plus belle effet.

Merci à tous !
Hakim
0
yoman64 Messages postés 962 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 2 août 2010 2
20 mars 2008 à 03:26
Salut,

Bon je sais que tu as déja une solution, mais pour ton problème je suis surpris que personne ne t'ai suggeré array_shift qui dépile le premier élément d'un tableau.. Les éléments d'un tableau ont toujours un ordre (soit l'ordre dans lequel ils sont poussé dans la pile)

par exemple:

$arr = array('cle1'=>'value1',              'cle2'=>'value2',             'cle3'=>'value3');
echo array_shift($arr);

va afficher value1...

Et sinon si c'est juste la plus grande valeure que tu cherchais dans ton tableau la fonction max() t'aurais fait ça :)

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 mars 2008 à 08:10
Hello,

array_shift() dépile en effet le premier élément, ce qui n'est pas forcément souhaitable.
Le moyen pourtant simple prévu par la doc auquel personne n'a pensé et qui fait exactement ce que veut hakeem ;-) :
<?php$aTab array('toto'> 'titi', 'bla' => 'blo', 'hello' => 'world');
reset($aTab);
echo key($aTab);
?>
Ici, le reset() n'est évidemment pas nécessaire puisqu'on a pas bougé le pointeur du tableau. Mais c'est juste pour montrer que dans certains cas, c'est nécessaire.
0
hakeem69 Messages postés 30 Date d'inscription vendredi 22 juillet 2005 Statut Membre Dernière intervention 7 mai 2009
20 mars 2008 à 13:29
Waouh !
J'avais vraiment mal cherché, merci à toi Yoman ! Le max() fait exactement ce que je voulais !
C’est beaucoup plus propre qu'avec mon array_combine suivi d'autres fonctions, ça évite d'empiler des éléments au fur et à mesure, non seulement je me retrouve avec un beau tableau associatif en fin de requête SQL mais en plus j’économise 5 lignes de code ! (Et donc autant de fonction)

Merci à toi également Malalam car je pensais que le current() ne s'utilisait que si on avait déjà commencé à parcourir le tableau, j’ai donc appris.

Ca marche terrible en tout cas, je vais voir si il n'y a pas de ressource du même genre des les scripts et je posterais peut-être la ressource.

A++ all
hakim.
0
Rejoignez-nous