[PHP] Frage zu For-Schleife

Toby

Cadet 4th Year
Registriert
Mai 2003
Beiträge
107
Frage zu einer "Forschleife"

Halllo zusammen,

folgende For-Schleife:
Code:
for ($i=0; $i < count($ergebnis) ;$i++) 
 
{
Anweisung 1;
}

Ich möchte das die Häufigkeit der For-Schleife entsprechend der Variable $ergebnis ausgeführt wird. Aber nicht mehr als z.B 500 Mal !!

Ich möchte jetzt aber nicht das sie immer 500 Mal ausgeführt wird. Sondern wenn die Variable $Ergebnis 150 ist, eben nur 150 x ! Und wie gesagt maximal nur 500.

Jemand eine Idee ?.
 
Re: Frage zu einer "Forschleife"

Code:
$zahl = count($ergebnis);
if ( $zahl >500 )  $zahl = 500;
for ($i=0; $i < $zahl) ;$i++) 
{
    Anweisung 1;
}
So müsste es gehen.

edit:
Mist, zu langsam :(
 
Wenn man's so liest eigentlich logisch.
Nur muss man halt darauf kommen ;)

Danke, Euch beiden.

so long
Toby
 
oder so


PHP:
for ($i=0; $i < count($ergebnis) ;$i++) 
 {
Anweisung 1;

if($i == 499) break;
}
 
die obige Anweisung ist aber besser, da hier nicht ständig innerhalb der Schleife geprüft werden muss und somit etwas schneller wäre :)
 
ich sags mal mit den worten von userm info-lehrer

um 10.000.000 mal zu prüfen ob 2 werte identisch sind werden knapp 20ms benötigt und das auf einem 400 mhz rechner. ok php ist sau-langsam also sagen wir mal php schaft in 20ms 1.000.000 vergleiche, dass sollte immer noch schnell genug sein. hast aber natürlich recht das es "langsamer" ist :D
 
und wenn's "nur" 20 ms sind, warum sollte man die herschenken !? ;)
 
Ich sage es mal mit meinen Worten:

"Wer bewusst langsamen Code schreibt sollte die Finger schnell von der Tastatur nehmen, und nochmal kurz nachdenken."
 
linksschieben einer zahl ist die schnellst mögliche rechenoperation die es gibt, schneller als +1 addieren !!!


für alle die nicht wissen was das ist: linksschieben = verdoppeln; allerdings wird das kein compiler so übersetzten :(

aber gut wer mein auch nuch eine hunderttausendste millisekunde rauszuholen (0,00000001 sekunden), den will ich nicht aufhalten.


p.s.: langsamer code ist wenn du für ein ergebnis 2^n rechenoperationen benötigst und nich n^2!!! aber ich möcht hier ja niemanden auf die füße treten, soll jeder selbst wissen wie er coded, einmal abgesehn davon das tempo nicht alles ist, wichtiger sind zeitliche realisierung (zeit=geld:)) und wartungsfreundlichkeit (zeit=geld:)) - weiss jeder der schon mal im team gearbeitet hat und dann den code von jemand anderem ändern musste.
 
Blöd, das wird jetzt genau die Diskussion in der jeder Recht hat und doch keiner.

Du hast Recht, Links- oder Rechtsschieben ist verd**** schnell.
Aber jeder mir bekannte Compiler (MS Visual C++, GCC, Intel, Arm) übersetzt eine solche Operation in eine ensprechende LSL (logical shift left) oder LSR (logical shift right) Assembleranweisung.

Zum PS:
Wieder hast du Recht.
Nur wenn der Kunde schon bald kommt, und meint " 'tschuldigung meine Damen und Herren, aber das Programm, das Sie für mich programmierten läuft seeehr langsam", dann geht das Tiefluftholen los und dann wird in die Hände gespuckt und nachgebessert (optimiert). Diese zusätzliche Ausgabe/Arbeit hätte man sich sparen können wenn man von Anfang an auch auf solche einfachen Optimierungen achtgegeben hätte.
 
..was man dem kunden vorher gesagt hat wo der meinte das wird zu teuer :D. ich kenn diese diskussionen nur zu gut aber der kunde sitzt IMMER am längeren hebel und optimierungen kosten nunmal viel geld. als hobbyprogrammierer muss man sich mit solchen fragen halt nicht beschäftigen, hier heissts: hauptsache es geht ;)


wie gesagt eine dumme diskussion :) allerdings wird der faktor optimierung auf modernen rechnern zunehmend unwichtiger, die computer sind einfach so schnell mitlerweile, dass es sich nur selten lohn zu optimieren. ob ich jetzt 1 sekunde brauch das programm zu starten oder 2 spielt keine rolle oder ob ich 50mio datensätzte in 0.5 oder 1 sekunde sortiert habe ist auch eher uninteressant, auch wenn es sich hier um 50% leistungsuntschied handelt !!!:)
 
Zuletzt bearbeitet:
es kommt ja letztenendes auf das Anwendungsgebiet an:

Office- und Regel-Anwendungen benötigen im Normalfall wenig Rechenleistung und sie müssen auch nicht superflott ablaufen

bei Server- und vor allem Datenbank-Anwendungen sowie Spielen sieht das wieder ganz anders aus

letztenendes kommt es (wie überall) auf die Situation an ;)
 
Zurück
Oben