Pb URGENT: pb tt bete dc répondez vite svp!!

Résolu
joduak Messages postés 194 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 13 avril 2007 - 25 juil. 2005 à 22:45
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 26 juil. 2005 à 09:30
Bonsoir,

Voilà, j'ai un tableau indicé (genre: $tableau[$i]) qui contient des horaires (genre 09:30:00) et je voudrais sortir de ce tableau l'horaire qui a la plus petite valeur. Comment faire?
Y a t il une fonction qui permet de le faire?
J'ai vu qu'il y avait une fonction min() mais elle s'emploie qu'avec des array() et je ne connais po du tout le langage objet.
Mais s'il y a possibilité de porter le tableau indicé dont j'ai parlé en array pour utiliser la fonction min() pkoi pas.
Merci de me répondre super vite!

++

Jo

4 réponses

malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
26 juil. 2005 à 08:18
C'est quoi l'urgence au fait? Moi j'ai cru qu'y avait un mort

Essaie ca:
<?
$tableau1[0] = 5;
$tableau1[1] = 2;
$tableau1[2] = 4;
$tableau1[3] = 7;


$tableau2 = Array(5,2,4,7);


sort($tableau1);
sort($tableau2);


echo min($tableau1). '
'.min($tableau2);
?>
et tu verras qu'il n'y a pas de dif entre tableau et array la. Ensuite a toi de traiter 09:30:00 en utilisant substr ou plutot mktime pour le classement (regarde http://php.benscom.com/manual/fr/function.mktime.php)

Enjoy, ++

(et mets un vrai titre la prochaine fois stp)
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 juil. 2005 à 08:21
Hello,



'ai vu qu'il y avait une fonction min() mais elle s'emploie qu'avec des array() et je ne connais po du tout le langage objet

=> un array est un tableau, cela n'a rien a voir avec les objets :-)



Ensuite, tes valeurs, si elles sont indiquees comme ca 09:30:00, php va les traiter comme des chaines de caractere.

Je te suggere donc de les transformer en int (en fait, en secondes, vu
que ta plus petite unite est la seconde), puis effectivement d'utiliser
min ().
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 juil. 2005 à 08:22
Ouais mais sort () va lui modifier l'odre des entrees de son tableau,
ce qui n'est pas forcement souhaitable (enfin ca, lui seul peut le
dire).
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 juil. 2005 à 09:30
Bon comme j'ai pas mal de minutes libres ce matin ;-), je t'ai fait un
petit exemple de comment je gererais la chose moi. A adapter selon tes
besoins :



<?php

$horaires = array ('09:30:00', '12:45:05', '06:58:12', '17:45:30', '03:25:00');



function cb_horToSeconds ($entree) {

$tabTmp = explode (':', $entree);

if (is_array ($tabTmp)) {

return $tabTmp[0]*3600 + $tabTmp[1]*60 + $tabTmp[2];

}

}



$tabCopy = array_map ('cb_horToSeconds', $horaires);

echo $horaires[array_search (min ($tabCopy), $tabCopy)];

?>
0
Rejoignez-nous