AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [PHP] Mehrdimensionalen Array sortieren nach Datum
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] Mehrdimensionalen Array sortieren nach Datum

Ein Thema von geofranz01 · begonnen am 2. Dez 2007 · letzter Beitrag vom 2. Dez 2007
Antwort Antwort
geofranz01

Registriert seit: 17. Jun 2007
72 Beiträge
 
Delphi 2007 Enterprise
 
#1

[PHP] Mehrdimensionalen Array sortieren nach Datum

  Alt 2. Dez 2007, 18:12
Hi,

hab folgendes Problem: Ich will einen unsortierten mehrdimensionalen Array nach dem Datum, das im ersten Array steht, sortiere. Dafür wollte ich die Funktion "uasort" benutzen. Allerdings funzt bei mir die Werteübergabe an die Bewerte-Funktion(-1,0,1) nicht. Wenn ich die Funktion normal aufrufe, mit den beiden Daten als String, bekomme ich aber den richtigen Rückgabewert. Was mache ich falsch???

Der Aray:

Array (
[24.09.2007] => Array ( [Kurztitel] => Test [Beschreibung] => Beschreibung test )
[27.05.2007] => Array ( [Kurztitel] => Testaa2 [Beschreibung] => beschreibung 2 )
[28.10.2008] => Array ( [Kurztitel] => nummer3 [Beschreibung] => beschrebung 3 ) ..
..
..
(so gehts immer weiter)


Die Funktion:

Code:
function sortiere ($item1, $item2) {

$d1=$item1[0].$item1[1];
$m1=$item1[3].$item1[4];
$y1=$item1[6].$item1[7].$item1[8].$item1[9];

$d2=$item2[0].$item2[1];
$m2=$item2[3].$item2[4];
$y2=$item2[6].$item2[7].$item2[8].$item2[9];


$d1=(int)$d1;
$m1=(int)$m1;
$y1=(int)$y1;
$d2=(int)$d2;
$m2=(int)$m2;
$y2=(int)$y2;


if (y1 == y2)
  {
    if (m1 == m2)
     {
        if (d1 == d2)
         {return 0; }
        else
           if (d1 > d2) {return 1; }
          else
           if (d1 < d2) { return -1;}
      }
    else
        if (m1 > m2) {return 1 ;}
       else
        if (m1 < m2) { return -1;}
  }
else
    if (y1 > y2) {return 1 ;}
  else
    if (y1 < y2) { return -1;}

}
Übergeben tu ich den array so:
Code:
uasort($meinarray, 'sortiere');
Zum Datum: Das steht immer so: 'dd.mm.yyyy'

Wo ist mein Denkfehler???

Vielen Dank für eure Hilfe!!!

P.S. Bin noch ganz neu in PHP und kenne mich noch nicht so gut aus, also bitte nicht zu streng
Falls ihr meint eine Datenbank wäre besser: Klar, nur leider gehts nur so mit Arrays, da ich diesen aus einer INI-Datei parse, die ein Delphi-Projekt benötigt.
Max
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: [PHP] Mehrdimensionalen Array sortieren nach Datum

  Alt 2. Dez 2007, 18:17
evtl. ist array_multisort von nutzen.

EDIT:

uksort und

Code:
function sortiere ($item1, $item2) {
  list($d,$m,$y) = explode('.',$item1);
  $timestamp1 = mktime(0,0,0,$m,$d,$y);

  list($d,$m,$y) = explode('.',$item2);
  $timestamp2 = mktime(0,0,0,$m,$d,$y);

  if ($timestamp1 == $timestamp2) return 0;
  if ($timestamp1 > $timestamp2) return 1;
  if ($timestamp1 < $timestamp2) return -1;
}
sind deine Freunde
  Mit Zitat antworten Zitat
geofranz01

Registriert seit: 17. Jun 2007
72 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: [PHP] Mehrdimensionalen Array sortieren nach Datum

  Alt 2. Dez 2007, 18:26
Hm,
eigentlich will ich ja nur einen großen Array sortieren. Der Wert(wieder Array) des Index (26.09.2007) ist halt wieder ein Array. Eigentlich müsste das oben doch klappen, oder?

mfg,
geofranz
Max
  Mit Zitat antworten Zitat
Thorben77

Registriert seit: 22. Okt 2004
359 Beiträge
 
#4

Re: [PHP] Mehrdimensionalen Array sortieren nach Datum

  Alt 2. Dez 2007, 18:28
Vielleicht funktioniert es mit ksort() und SORT_STRING als Parameter?
  Mit Zitat antworten Zitat
geofranz01

Registriert seit: 17. Jun 2007
72 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: [PHP] Mehrdimensionalen Array sortieren nach Datum

  Alt 2. Dez 2007, 18:31
@ Thorben: Habs probiert, funzt aber nicht. Es wird nach dem Tag angeordnet.

mfg,
geofranz
Max
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: [PHP] Mehrdimensionalen Array sortieren nach Datum

  Alt 2. Dez 2007, 18:39
uhm siehe oben... kam keine rote Box
  Mit Zitat antworten Zitat
geofranz01

Registriert seit: 17. Jun 2007
72 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: [PHP] Mehrdimensionalen Array sortieren nach Datum

  Alt 2. Dez 2007, 18:58
Huju!!!!

Danke cruiser!!

Es klappt!!! Meine 4-stündigen Versuche haben ein Ende!!!

@Cruiser:

Es heißt "mktime" und nicht "mkdate".
Roter Kasten: Hab's rausbekommen. "mkdate" war schwieriger.

Vielen Dank und mfg,
geofranz
Max
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: [PHP] Mehrdimensionalen Array sortieren nach Datum

  Alt 2. Dez 2007, 19:20
stümmt... war aussem stehgreif getippt...
  Mit Zitat antworten Zitat
Antwort Antwort


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz