Gå til innhold

Sortere foreach etter dato


Anbefalte innlegg

Har en løkke som henter ut mapper.. men hvordan kan jeg få arrayene til å bli sortert etter dato?

<?php
   	foreach(glob('*') as $file) {
 IF ($$filei == "") { $filei = "0"; }
   $dir = "../bilder/$file/thumbs/"; 
     	if ($dh = opendir($dir)) { 
       while (($fil = readdir($dh)) !== false) {
           IF ($fil != "" && $fil != "." && $fil != "..") {
          $filei++;
}}}
IF ($filei == "") { $filei = "0"; }
 echo "<div class=\"serie\">";

 echo "<u><a href=\"bilder.php?serie=$file\">$file</a></u><br>\n";
 echo "<font size=\"1\">$filei bilder</font>\n";
         
  echo "</div>\n\n";?>

Endret av kennteh
Lenke til kommentar
Videoannonse
Annonse

Litt trett nå, men mekket sammen dette:

<?php
foreach(glob('*') as $file) {
   IF ($$filei == "") { $filei = "0"; }
   $dir = "../bilder/$file/thumbs/";
   if ($dh = opendir($dir)) {
       while (($fil = readdir($dh)) !== false) {
           IF ($fil != "" && $fil != "." && $fil != "..") {
               $filei++;
           }
       }
   }
   IF ($filei == "") { $filei = "0"; }
   $array[$file] = $file;
}

sort($array);

foreach ($array as $file) {
   echo "<div class=\"serie\">";
   echo "<u><a href=\"bilder.php?serie=$file\">$file</a></u><br>\n";
   echo "<font size=\"1\">$filei bilder</font>\n";
   echo "</div>\n\n";
}
?>

 

Ikke testet...

Lenke til kommentar

dette burde gjøre susen(testet på en web10.nu server)

<?php
/**
* Funksjonen henter ut alle bildene i en mappe
* De tilordnes i et array etter timestamp de ble laget
* Fungerer kun på Unix (filemtime() er ikke tilgjengelig i win)
*/

function get_files_by_time($dir){
$bilder = array();
if(is_dir($dir)){
 if ($dh = opendir($dir)) {
 	while (($fil = readdir($dh)) !== false) {
   
   //Sørg for at det er et bilde vi henter
   if (!is_dir($fil)) {
   	if($tid = (int) filemtime($_SERVER['DOCUMENT_ROOT'].'/'.$dir.'/'.$fil)){ //force til int for senere bruk
     while(array_key_exists($tid, $bilder)){
     	$tid++;	//øker tiden med 1 sekund, om et annet bilde har samme "lastmodified" tid
     }
     
     $bilder[$tid] = $fil;
 
         //øk bildetelleren med 1, er default 0
     $count++;
   	}
   }
 	}
 }
}

sort($bilder, SORT_NUMERIC); //sorter etter int
array_reverse($bilder);
$bilder['count'] = $count; //legger til antall bilder i arrayet etter sortering
clearstatcache(); //tømmer cache da alle tidene lagres der
return $bilder;
}

//foreslått bruk

$bilder = get_files_by_time('img/');
//første bilde bør da ligge i $bilder[$folder][0]
//antall bilder finner du i $bilder[$folder]['count']
?>

Endret av NH
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...