Stefan Richter: PHP - Mysql -> Zweidimensionales Array erzeugen

Beitrag lesen

Nur eine Million Zeichen.

Könnten auch mehr sein... war halt nur als Beispiel, wenn die Karte 1000 x 1000 Felder groß ist...

Du siehst: Der String ist wirklich extrem speichersparend im Vergleich zu Arrays.

Ja, das kann ich mir vorstellen, dass Strings in der Hinsicht speichersparender sind...

Rechenaufwand gegen Speicheraufwand. Wenn der reale Speicher nicht mehr ausreicht, wird ausgelagert (oder das Skript wegen zu großer Speichernutzung abgebrochen).

Genau das Problem besteht, wenn die Feldanzahl zu groß ist...

Hast du den Rechenaufwand schon mal nachgemessen? Wieviel Prozent langsamer ist das?

Nein, bisher noch nicht, da ich auf die Idee mit dem String noch nicht gekommen bin... aber scheint eine gute Lösung zu sein, da ich ja maximal nur 1 Zeichen pro Feldkoordinate speichere...

Ich habe eine $x und eine $y Variable, welche jeweils die aktuelle Position angeben... da müsste ich bei jedem Schleifendurchlauf die x/y Koordinate in die jeweilige Stelle umrechnen:

Angenommen das Feld geht von x: 0-1000 und y: 0-1000, dann würde die Berechnung ja folgendermaßen lauten: $string[$x*1000 + $y]. Achso plus die Berechnung, wenn das erste Feld bspw. erst bei 500 beginnt... da müsste ich dann zusätzlich noch die kleinste Koordinate ermitteln und jedesmal Minus diesen Wert rechnen.

Wie lange nun die Berechnung $x*1000 + $y bei vielleicht 10000 Schleifendurchläufen länger braucht als ohne, muss ich mal mit einem kleinen Testscript ausprobieren und die Zeit messen.

Grüße