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;
}
