Pb URGENT: pb tt bete dc répondez vite svp!! [Résolu]

Signaler
Messages postés
194
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
13 avril 2007
-
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
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

Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
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)
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
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 ().
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
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).
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
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)];

?>