Seit PHP 5.3. gibt es Arrays mit fixer Länge names SplFixedArray (wie in Java und anderen Sprachen), die performanter oder gleich performant sind in den meisten Operationen wie
- lesen
- einfügen
- auslesen
Details zu den Performance Vorteilen inklusive Tests gibt es auf diesem Blog.
Im folgendes Beispiel habe ich die neue Datenstruktur benutzt und bin zu enormen Performancegewinnen gekommen:
function activeRecordAttributeToArrayFastMemory($objects, $attributeName) { $size = count($objects); $array = new SplFixedArray($size); for($i = 0; $i < $size; $i++) { $array[$i] = $objects[$i]->$attributeName; } $returnArray = $array->toArray(); return $returnArray; }