2012-03-31 14 views
4

Entschuldigung, wenn diese Frage schon woanders beantwortet wurde, aber ich konnte sie nicht finden (möglicherweise weil ich eine schwierige Zeit hatte, meine Frage richtig zu formulieren).PHP-Array-Speicherverbrauch für ungenutzte Offsets

Ich arbeite mit einem Double-Dimension-Array, die das Ergebnis aus einer DB-Abfrage ist. Ive erhielt die Anordnung so die Array erster Index ist das Stück der Reihe Array eingerichtet, so dass die Anordnung aussehen würde ...

$array[345] = {'id' => 345, 
       'info1' => 'lorem', 
       'infor2' => 'ipsum'} 

$array[448] = {'id' => 448, 
       'info1' => 'lorem', 
       'infor2' => 'ipsum'} 

Meine Frage ... Ich weiß, das der Index als Integer übergeben werden. Also denke ich (vielleicht fälschlicherweise), dass sie vom Array als numerische Offsets behandelt werden (im Gegensatz zu assoziativ). Wenn also der erste Index 345 ist, reserviert das System automatisch Speicherplatz im Speicher für die Indizes 0 bis 344 ? Der Code funktioniert perfekt, aber ich frage mich, ob diese Methode eine Menge Speicher auffressen wird. Besonders, wenn ich zu dem Punkt komme, wo nur zwei Arrays bei 322.343 und 554.324 gespeichert sind. Tut mir leid, wenn es eine dumme Frage ist, danke für die Antworten.

Antwort

4

Nein, Arrays sind Hashmaps und Schlüssel gleich Offsets nicht, z

$foo = array(0 => 'x', 1000 => 'y') 

zwei Elemente ist nur. Dazwischen ist nichts reserviert.

+0

Vielen Dank für Ihre Hilfe – dgeare

Verwandte Themen