Osteraufgabe
Chris
- php
Hi Forum,
Hi Tom,
auch Dir ein frohes Osterfest...
Deine Osteraufgabe krieg ich einfach nicht geknackt.
Dass da ein Fehler drin versteckt ist, habe ich inzwischen realisieren können, wo der aber steckt, weiß ich nicht. Muss 'was ganz gemeines sein. Ich bitte daher mal das Forum um Hilfe. Du sagst ja immer "Intelligenz ist, aus den Fehlern (Anmerkung von mir: oder dem Wissen davon) Anderer zu lernen"
Unter
http://selfhtml.bitworks.de/artikel_locking/count_visitors.php
gibt es schon lange ein Beispiel eines Besucherzählers.
Unter
http://selfhtml.bitworks.de/artikel_locking/show_visitors.php
kann man sich dann die Zählergebnisse anschauen.
Seit einiger Zeit schon wird beobachtet, dass die Liste nicht mehr als 23 Zeilen anzeigt. Da stimmt also was nicht.
Ich krieg diese Aufgabe nicht gelöst und da ich aus den Logs weiß, dass das Beispiel inzwischen einige tausende Male runtergeladen wurde, haben also nun wahrscheinlich einige diesen Fehler, ohne ihn wirklich bemerkt zu haben.
hätte ich doch nur meine Klappe gehalten *ggg*
Auch Euch allen nochmal Froeh Ostern
Euer Chris
Hello,
Hi Forum,
Hi Tom,auch Dir ein frohes Osterfest...
Danke. Dito. Bist Du nachher am Feuer?
Deine Osteraufgabe krieg ich einfach nicht geknackt.
Die ist auch wirklich gemein. Gebe ich zu.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
gudn tach Chris!
Seit einiger Zeit schon wird beobachtet, dass die Liste nicht mehr als 23 Zeilen anzeigt. Da stimmt also was nicht.
23? ahhh! dann isses doch klar! SIE waren es...
naja, vielleicht liegt's auch einfach an dem
$_data=array_flip($_data);
;-) ist ja nicht bijektiv.
ich habe die anzahl der zeilen uebrigens auf 24 erhoeht...
prost
seth
Hi Seth,
Seit einiger Zeit schon wird beobachtet, dass die Liste nicht mehr als 23 Zeilen anzeigt. Da stimmt also was nicht.
23? ahhh! dann isses doch klar! SIE waren es...
naja, vielleicht liegt's auch einfach an dem
$_data=array_flip($_data);
;-) ist ja nicht bijektiv.
Danke für den Tipp.
DAS hätte ich bis Dienstag nicht rausgefunden.
Nun funktioniert es *freu*
Ich hatte das bemerkt und prompt die Debug-Aufgabe bekommen ;-)
Habe da jetzt einfach eine neue Funktion für's Sortieren erstellt. Die ist zwar ein bisschen umständlich, aber eine andere Lösung habe ich nicht gefunden.
Grüße
gehe jetzt zum Osterfeuer-Aufschichten
Chris
gudn tach Chris!
Habe da jetzt einfach eine neue Funktion für's Sortieren erstellt. Die ist zwar ein bisschen umständlich, aber eine andere Lösung habe ich nicht gefunden.
prost
seth
Nochmal Tach Seth,
Habe da jetzt einfach eine neue Funktion für's Sortieren erstellt. Die ist zwar ein bisschen umständlich, aber eine andere Lösung habe ich nicht gefunden.
Das kenne ich durchaus, sortiert aber anders, als natsort().
Und ich habe nun versucht, ein natsort() für die Keys zu bauen.
Was mir daran nicht gut gefällt, ist, dass das Array zeitweilig dreieinhalb mal im Speicher gehalten werden muss.
1,0 Original
2,0 an die Funktion übergebene Kopie
2,2 Die Keys aus dem Array
2,4 während der Sortierung nochmal irgendwie
3,4 das neu aufgebaute Array
Das würde ich gerne korrigieren. Die Funktion sollte als Prozedur arbeiten mit Referenz-Paramter
function key_natsort($_data)
{
if(!is_array($_data))
{
return $_data;
}
$_keys = array_keys($_data);
natsort($_keys);
$_ret = array();
foreach ($_keys as $key)
{
$_ret[$key] = $_data[$key];
}
return $_ret;
}
Weil es ohnehin regnet, habe ich ja noch Zeit, die Osteraufgabe anständig zu lösen ;-)) Aber 'ne gute Idee habe ich nicht.
Der Chris
gudn tach Chris!
Das kenne ich durchaus, sortiert aber anders, als natsort().
stimmt, aber auf der verlinkten seite ist auch ein natksort angegeben. das ist jedoch genau das gleiche wie dein bisheriger ansatz.
'ne gute Idee habe ich nicht.
wie waer's mit einem selbstgebastelten vergleich via uksort? ist aber evtl. zu lahm.
(beide moeglichkeiten ungetestet:)
// erste moeglichkeit:
uksort($_data, "strnatcmp");
// zweite moeglichkeit (ist wahrscheinlich noch langsamer)
function cmp($a, $b){
if($a==$b) return 0;
$parts_a = explode('.', $a);
$parts_b = explode('.', $b);
// die vier teile als int vergleichen...
}
uksort($_data, "cmp");
prost
seth