| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Achim Math.PI Registriert seit: Jul 2001 Ort: cool Colonia
Beiträge: 11.642
| Array nach Datum sortieren
Hallo zusammen, ich habe folgendes spezielles problem... ich erhalte aus einer xml datei einträge die u.a. daten (plural von datum) enthalten, welche sich dann in einem array(hauptarray) wieder finden. hierhaus filtere ich einige raus (wie und wo für dieses prob unwichtig)wo ich dann am ende 2 array erhalte: nämlich eins mit dem datumwert und eins mit der postion die es im hauptarray hat. zb : PHP-Code: so wenns keine daten wären liessse sich das leicht lösen indem man immer in das datum eine id pusht un die später mit split, join wieder ausliest - nur bei daten (datums) ist das problem so dass sie sich ned einfach sortieren lassen... siehe hier nun bastel ich hier schon ne weile rum un komme auf kein ergebniss wie man die nacher sortieren array wieder mit seiner orignal postion abgleicht....
__________________ gruß bloba 2 x onkel² b_d |
| | |
| | #2 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.321
|
falls ich dich richtig verstanden habe: Code: selectDate = ["2.3.2003", "3.3.2000", "8.1.2006"];
selectPos = [2, 5, 8];
//
index = dateSort(selectDate);
for (var i = 0; i<index.length; i++) {
trace(selectPos[index[i]]+": "+selectDate[index[i]]);
}
//
function dateSort(daten) {
var index = [];
for (var i in daten) {
var t = daten[i].split('.');
index[i] = Number(new Date(t[2], t[1]-1, t[0]));
}
return index.sort(Array.NUMERIC, Array.RETURNINDEXEDARRAY);
}
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #3 (permalink) |
| Achim Math.PI Registriert seit: Jul 2001 Ort: cool Colonia
Beiträge: 11.642
|
ne nicht ganz - habe es baer inzwischen selber hinbekommen dennoch danke ![]() PHP-Code:
__________________ gruß bloba 2 x onkel² b_d |
| | |
| | #4 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.321
|
stimmt schon, nur die beiwerte bei sort hätte ich nicht mit komma trennen dürfen. und deine routine hat einen bug: Code: var daten = ["10.10.2005", "5.7.2006", "8.5.1995", "3.4.2000", "24.12.2007"];
var ref = ["10.10.2005", "5.7.2006", "8.5.1995", "3.4.2000", "24.12.2007"];
var p = [1, 2, 3, 4, 5];
function dateSort(daten) {
for (var i = 0; i<daten.length; i++) {
var aTemp = daten[i].split('.');
daten[i] = new Date(aTemp[2], aTemp[1], aTemp[0]);
}
for (var i = daten.length; i>0; i--) {
for (var j = 0; j<i-1; j++) {
if (daten[j].getTime()>daten[j+1].getTime()) {
h = daten[j];
daten[j] = daten[j+1];
daten[j+1] = h;
}
}
}
for (var i = 0; i<daten.length; i++) {
daten[i] = daten[i].getDate()+"."+daten[i].getMonth()+"."+daten[i].getFullYear();
}
}
dateSort(daten);
var playlist = [];
for (var j = 0; j<daten.length; j++) {
for (var i = 0; i<daten.length; i++) {
if (ref[i] == daten[j]) {
playlist.push(i);
}
}
}
np = [];
for (var j = 0; j<daten.length; j++) {
np.push(p[playlist[j]]);
}
trace(daten);
trace(np);
trace("-----");
//
//
selectDate = ["10.10.2005", "5.7.2006", "8.5.1995", "3.4.2000", "24.12.2007"];
selectPos = [1, 2, 3, 4, 5];
index = dateSort2(ref);
for (var i = 0; i<index.length; i++) {
trace(selectPos[index[i]]+": "+selectDate[index[i]]);
}
function dateSort2(daten) {
var index = [];
for (var i in daten) {
var t = daten[i].split('.');
index[i] = Number(new Date(t[2], t[1]-1, t[0]));
}
return index.sort(Array.NUMERIC+Array.RETURNINDEXEDARRAY);
}
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |