php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.09.2006, 21:16  
LP
Erfahrener Benutzer
 
Registriert seit: 02.06.2005
Beiträge: 150
LP
Standard assoziatives array sortieren

ich habe ein array in dem ein dateiname steht in diesem assoziativen array ist wieder ein array mit dem gesplitteten dateiinhalt (feld 2 ist das datum)
nun möchte ich die arrays nach datum sortieren!
geht das?
wenn ja wie?

hier ist der code, wo die arrays bestimmt werden:

PHP-Code:
$dir="infos/".$jahr."/";
$dh=opendir($dir);
  while(
$file readdir($dh))
   {
    
$info pathinfo($file);
    if(
$file != "." AND $file != ".." AND $info['extension'] == 'txt')
    {
     
$txtfile[] = substr($file,0,$$txt-4);
     
$txt[]=file($dir.$file);
    }
  }
  
closedir($dh); 
LP ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.09.2006, 21:57  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard

ähm vielleicht bin ich gerade blind, aber das was du da hast sind zwei indizierte Arrays, die so auf den ersten Blink nicht viel gemeinsam haben
CC84 ist offline  
Alt 08.09.2006, 22:09  
Erfahrener Benutzer
 
Registriert seit: 22.01.2005
Beiträge: 610
Connar befindet sich auf einem aufstrebenden Ast
Standard

Also erstmal, was ich net ganz versteh is folgende Zeile:
Code:
$txtfile[] = substr($file,0,$$txt-4);
$txt is ja ein Array .. und wenn du jetzt $$txt machst, was soll die Variable dann bitte für einen Name haben? Also das erscheint mir leider net so ganz sinnvoll.
Und wo du Arrays ineinander hast .. das seh ich leider auch net, also ich würde mal behaupten deine Beschreibung hilft der Lösung des Problems nicht weiter.


MFG Connar
Connar ist gerade online  
Alt 08.09.2006, 22:41  
LP
Erfahrener Benutzer
 
Registriert seit: 02.06.2005
Beiträge: 150
LP
Standard

PHP-Code:
txtfile[] = substr($file,0,-4); 
in der zeile wird vom dateinamen die endung (.txt) entfernt
LP ist offline  
Alt 08.09.2006, 22:55  
LP
Erfahrener Benutzer
 
Registriert seit: 02.06.2005
Beiträge: 150
LP
Standard

habs runtergebrochen auf:
PHP-Code:
 $file readdir($dh);
 foreach(
glob("infos/$jahr/*.txt") as $file)
 {
  
$temp=substr($file,0,-4);
  
$txtfile[] = substr($temp,11);
  
$txt[]=file($file);
 }
 
closedir($dh); 
LP ist offline  
Alt 08.09.2006, 23:08  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard

schön, das sind nun aber noch immer keine assoziativen Arrays!!

assoziativ bedeutet du nutzt anstatt von einem numerischen Index der von 0 bis x läuft Namen. Werte die du mit $varible[] = xyz einfügst sind nun aber numerisch.

Wenn du nun das textfile Array nach den Werten in txt sortieren willst, wird das recht sicher scheitern.

Was du machen kannst ist
$txt[substr($file,0,-4)] = file($file);

das wäre nun assoziativ, weil dir substr nen string zurück gibt. Dieses Array müsstest du dann mit

uasort($txt,"sortieren") sortieren.

wobei du dann ne Funktion sortieren schreiben musst die in etwa so aussehen dürfte:

function sortieren($a,$b){
if ($a['date'] == $b['date']) {
return 0;
}
return ($a['date'] > $b['date']) ? -1 : 1;

}

Hier wäre nun die neueste Datei oben. Wobei file($file) dir nur die Zeilen der TXT zurück gibt, nicht aber das Datum der Datei, nach dem du sortieren möchtest.
CC84 ist offline  
Alt 08.09.2006, 23:37  
LP
Erfahrener Benutzer
 
Registriert seit: 02.06.2005
Beiträge: 150
LP
Standard

bei der sortierung
kann ich da auch nach einem z.b. dem 2. absatz in der datei
also im 1. array sortieren?

die daten liegen hier:
PHP-Code:
foreach($txt as $ag)
 {
 echo 
$ag[1]."
"
;
 } 
LP ist offline  
Alt 09.09.2006, 01:10  
LP
Erfahrener Benutzer
 
Registriert seit: 02.06.2005
Beiträge: 150
LP
Standard

ENDLICH hab ich's!!

für die die es interessiert
PHP-Code:
 function datumsvergleich$a$b )
 {
  
$expla=explode(".",$a[1]);
 
//um das datum vom TT.MM.JJJJ format in MM.TT.JJJJ umzuwandeln
  
$a[1]=$expla[1].".".$expla[0].".".$expla[2];
  
$explb=explode(".",$b[1]);
  
$b[1]=$explb[1].".".$explb[0].".".$explb[2];
 
//sortierung 
  
if ( $a[1] == $b[1] )
  return 
0;
  if ( 
$a[1] < $b[1] )
  return 
1;
  return -
1;
 } 
PHP-Code:
 foreach(glob("infos/$jahr/*.txt") as $file)
 {
  
$temp=substr($file,0,-4);
  
$txt[substr($temp,11)] = file($file);
 }

 
uasort($txt,"datumsvergleich"); 
PHP-Code:
foreach($txt as $txtfile)
  {
  
$txtfile[5]=strtolower(str_replace(" ","_",$txtfile[0]));
  
$ausgabe.=$txtfile[1].$txtfile[0];
  } 
LP ist offline  
Alt 09.09.2006, 07:47  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard

Zitat:
Zitat von LP
ENDLICH hab ich's!!

für die die es interessiert
PHP-Code:
 function datumsvergleich$a$b )
 {
  
$expla=explode(".",$a[1]);
 
//um das datum vom TT.MM.JJJJ format in MM.TT.JJJJ umzuwandeln
  
$a[1]=$expla[1].".".$expla[0].".".$expla[2];
  
$explb=explode(".",$b[1]);
  
$b[1]=$explb[1].".".$explb[0].".".$explb[2];
 
//sortierung 
  
if ( $a[1] == $b[1] )
  return 
0;
  if ( 
$a[1] < $b[1] )
  return 
1;
  return -
1;
 } 
PHP-Code:
 foreach(glob("infos/$jahr/*.txt") as $file)
 {
  
$temp=substr($file,0,-4);
  
$txt[substr($temp,11)] = file($file);
 }

 
uasort($txt,"datumsvergleich"); 
PHP-Code:
foreach($txt as $txtfile)
  {
  
$txtfile[5]=strtolower(str_replace(" ","_",$txtfile[0]));
  
$ausgabe.=$txtfile[1].$txtfile[0];
  } 
Fast richtig

Deine Funktion ordnet nun nach Monat und Tag, das Jahr wird aber ignoriert.
CC84 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Array sortieren mit regex Lupi PHP Tipps 2008 3 21.07.2008 15:17
Mehrdimensionales Array sortieren Unbekanntes_Pferd PHP Tipps 2006 6 23.05.2006 20:42
array richtig sortieren, dann ausgeben Heart PHP Tipps 2006 5 28.04.2006 20:23
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
assoziatives Array aus Datei PHP Tipps 2005-2 2 20.10.2005 19:21
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
Array verkehrt sortieren (key) // letzter Arrayeintrag PHP Tipps 2005-2 5 20.09.2005 15:55
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Array sortieren PHP Tipps 2005 7 15.05.2005 02:14
2 Array in Abhänigkeit sortieren? PHP Tipps 2005 4 10.02.2005 20:31
Array mit Gruppen: Wie Sortieren PHP Tipps 2005 2 29.01.2005 15:15
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
assoziatives Array aus 2 Spalten aus Mysql-Tabelle PHP Tipps 2004 2 14.06.2004 13:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
assoziatives array sortieren, php assoziatives array sortieren, assoziative arrays sortieren, assoziatives array sortieren php, named array ordnen, http://www.php.de/php-tipps-2006/42015-assoziatives-array-sortieren.html, substr array alle einträge, datumsvergleich in txt, php assoziatives array monat, assoziatives array alphabetische sortierung, assoziatives-array sortieren php, php array sort assoziatives array, assoziatives array numerisch sortieren php, assoziative array in numerische array wandeln, php assoziatives array numerisch sortieren, assoziatives array php sortieren, php arrays sortieren assoc, php assoziatives array sortieren nach key, php assoziatives array alphabetisch sortieren, php assozatives array alphabetisch sortieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:44 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.