JeuWeb - Crée ton jeu par navigateur
récupération de la cle du minimum d un tableau - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : récupération de la cle du minimum d un tableau (/showthread.php?tid=5028)

Pages : 1 2 3 4


récupération de la cle du minimum d un tableau - Ter Rowan - 30-07-2010

youpla !

je cherche à connaitre l'index associée à la valeur minimale d'un tableau et je me demande si ma solution n'est pas un peu piquée des vers...

je pense en effet faire :
Code PHP :
<?php 
asort
($tab); // je trie mon tableau
$indice = key($tab);

ma crainte étant en effet que key me renvoie un peu se qu'il veut (ou plus précisément des "choses" correspondant à des portions de code précédant que je ne maitrise pas

pour illustrer un peu voici le jeu de test complet qui m'a permis d'arriver à cette solution
Code PHP :
<?php
$tab
= array(
'toto' => 30,
'tutu' => 26,
'zzz' => 14,
'aaaa' => 56,
'lolita' => 3);

echo
'<h2>tableau non trié</h2>';
printr($tab);

echo
'<h3>affichage de l indice courant</h3>'.key($tab);

echo
'<h3>affichage de indice 0</h3>';
echo
$tab[0];

echo
'<h2>test sur min</h2>';
echo
min($tab);
echo
' pour '.key($tab).' ==> donc pas bon si ça affiche 3 toto';

echo
'<h3>affichage de l indice courant</h3>'.key($tab);

echo
'<h3>affichage de indice 0</h3>';
echo
$tab[0];


echo
'<h2>tableau trié</h2>';
asort($tab);
printr($tab);

echo
'<h3>affichage de l indice courant</h3>'.key($tab);
echo
' => ça marche bien mais ça me plait moyen';
echo
'<h3>affichage de indice 0</h3>';
echo
$tab[0].' ...soit rien du tout';

?>

si jamais vous avez une fonction qui renvoie directement l'index du min (ou du max) je suis preneur ^^

mercii


RE: récupération de la cle du minimum d un tableau - atra27 - 30-07-2010

A tout hasard:
http://php.net/manual/fr/function.max.php
http://www.php.net/manual/fr/function.min.php

Je ne sais pas si ça répondra a ton probléme... je ne pense pas mais a par parcourir le tableau je ne vois pas sinon (a noter qu'en C on parcours le tableau car il n'y a pas d'autre solution)


RE: récupération de la cle du minimum d un tableau - Anthor - 30-07-2010

Code PHP :
<?php 
$tmpArray
= array_flip($tab);
$indice = $tmpArray[min($tab)];



RE: récupération de la cle du minimum d un tableau - Ter Rowan - 30-07-2010

(30-07-2010, 02:26 PM)atra27 a écrit : A tout hasard:
http://php.net/manual/fr/function.max.php
http://www.php.net/manual/fr/function.min.php

Je ne sais pas si ça répondra a ton probléme... je ne pense pas mais a par parcourir le tableau je ne vois pas sinon (a noter qu'en C on parcours le tableau car il n'y a pas d'autre solution)
sûr que non ^^ min et max renvoie le résultat, pas l'indice

(30-07-2010, 02:41 PM)Anthor a écrit :
Code PHP :
<?php 
$tmpArray
= array_flip($tab);
$indice = $tmpArray[min($tab)];

Merci Anthor ^^ j'avais épluché la bibliothèque de fonction mais pas penser à combiner ainsi :p


RE: récupération de la cle du minimum d un tableau - Anthor - 30-07-2010

(30-07-2010, 04:22 PM)Ter Rowan a écrit :
(30-07-2010, 02:41 PM)Anthor a écrit :
Code PHP :
<?php 
$tmpArray
= array_flip($tab);
$indice = $tmpArray[min($tab)];

Merci Anthor ^^ j'avais épluché la bibliothèque de fonction mais pas penser à combiner ainsi :p

De rien, les tableaux lorsque tu as en tête les fonctions existantes, tu peux vraiment y faire ce que tu veux ^^

Évidemment, il faudrait ajouter des vérifications, genre deux fois la même valeur, etc..


RE: récupération de la cle du minimum d un tableau - niahoo - 30-07-2010

malin, mais faut quand même faire gaffe que ce problème ne se pose pas :
( je te laisse exécuter cette page : )

Code PHP :
<?php
header
('content-type: text/plain');
$tab = array(
'vie' => 100,
'mana' => 40,
'energie' => 40,
'envie_de_pisser' => 40
);

print_r( $tab );
$tmpArray = array_flip($tab);
print_r( $tmpArray );
$indice = $tmpArray[min($tab)];

var_dump( $indice );



RE: récupération de la cle du minimum d un tableau - Anthor - 30-07-2010

C'est bien ce que j'ai précisé ^^


RE: récupération de la cle du minimum d un tableau - srm - 30-07-2010

En Scala :
Code PHP :
<?php 
var map = Map ("toto" -> 30, "tutu" -> 26, "zzz" -> 14, "aaaa" -> 56, "lolita" -> 3)
map.reduceLeft {(a,b) => if (a._2 > b._2) b else a }

Smile


RE: récupération de la cle du minimum d un tableau - niahoo - 30-07-2010

Oui j'avais pas vu ton post, j'ai envoyé le mien après l'avoir écrit, le temps de voir passer un client ^^


Avec cette version on retrouve le premier plus petit au lieu du dernier ( normal, cette fois-ci les clés de même valeur ne sont pas écrasées )

Code PHP :
<?php
header
("Content-type: text/plain");
$tab = array(
'vie' => 100,
'mana' => 40,
'energie' => 40,
'envie_de_pisser' => 40
);

$indice = array_search( min($tab), $tab, true);

var_dump( $indice );



RE: récupération de la cle du minimum d un tableau - srm - 30-07-2010

Oups pardon, l'exemple précédent retournait "la clé , valeur" voici l'exemple qui ne retourne que la clé :
Code PHP :
<?php 
var map = Map ("toto" -> 30, "tutu" -> 26, "zzz" -> 14, "aaaa" -> 56, "lolita" -> 3)
map.reduceLeft {(a,b) => if (a._2 > b._2) b else a }._1