par
arginine » 22 oct. 2005, 14:25
Bonjour,
j'ai "crée" une petite fonction qui permet de lister les fichier jpg d'un dossier puis de créer un tableau associatif comprenant deux colonnes (IMAGE) et (DATEIMAGE) dans lequelles sont stockés le nom du fihier jpg et la date de ce dernier (via les infos exif).
Avec array_multisort j'arrive bien à trier chacun l'un ou l'une colonne du tableau mais ce que je n'arrive pas c'est de trier une collone (DATEIMAGE) et de faire en sorte que ce tri AFFECTE aussi l'autre colonne (IMAGE) ...
En résumé, comment faire pour trier un tableau associatif sur une colonne et que le résultat du tri AFFECTE AUSSI l'autre colonne ....
Un print_r du tableau me donne ca:
Code : Tout sélectionner
Array
(
[image] => Array
(
[0] => toto.jpg
[1] => tata.jpg
[2] => 92.jpg
[3] => 93.jpg
[4] => 94.jpg
)
[dateimage] => Array
(
[0] => 2000-12-26 05:08:08
[1] => 2005-08-27 17:39:41
[2] => 2005-09-04 18:24:09
[3] => 2005-09-04 18:29:43
[4] => 2005-09-04 18:29:44
)
)
La colonne DATEIMAGE est bien triée mais aucune répercution n'a eu lieu sur la colonne DATEIMAGE !!!
(ex: la date de toto.jpg est 2005-09-04 18:29:44 et j'aurais donc aimé a faire en sorte que le nouvel indice de toto.jpg soit 4 et non pas 0)....
Ci joint le code de ma fonction:
<pre><?
// Fonction de scan du repertoire
function scandir($dirstr)
{$files = array();
$fh = opendir($dirstr);
while (false !== ($filename = readdir($fh)) )
{
if ( $filename != "." && $filename != ".." && eregi(".jpg", $filename) )
{
// Lecture des infos EXIF et determination de la date/heure de l'image
$exif = exif_read_data("./thumbnails/".$filename);
if(empty($exif['DateTime'])) {$dateimage = date("Y-m-d H:i:s", filemtime($dirstr."/".$filename));}
else
{
$dateimage1 = $exif['DateTime'];
// Formqtqge date/heure
$dateimage_raw1 = explode(' ',$dateimage1);
$dateimage = str_replace(':','-',$dateimage_raw1[0]).' '.$dateimage_raw1[1];
}
$files['image'][] = $filename;
$files['dateimage'][] = $dateimage;
}
}
closedir($fh);
array_multisort($files['dateimage'] , SORT_ASC );
return $files;
}
$listing_dossier=scandir("./thumbnails");
print_r ($listing_dossier);
?>
</pre>
Par avance Merci beaucoup,
Francis