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.