Nina: Funktion viel zu langsam

Beitrag lesen

Habe nun der Dokumentation diese Funktion entnommen:
function merge($arr1,$arr2)
{
 if(!is_array($arr1))
         $arr1 = array();
 if(!is_array($arr2))
         $arr2 = array();
 $keys1 = array_keys($arr1);
 $keys2 = array_keys($arr2);
 $keys  = array_merge($keys1,$keys2);
 $vals1 = array_values($arr1);
 $vals2 = array_values($arr2);
 $vals  = array_merge($vals1,$vals2);
 $ret    = array();
 foreach($keys as $key)
 {
         list($unused,$val) = each($vals);
         $ret[$key] = $val;
 }
 return $ret;
}

Doch irgendwie scheint diese Funktion deutlich langsamer als array_merge zu arbeiten. Es lässt mir zwar die Index-Nummern bestehen, wie ich es benötige, aber dauert wesentlich länger.
für 1000 Items eines Arrays (1 dimensional):
array_merge => 2 sec
merge => 13 sec

Gibt es eine "optimierte" Version der Funktion, wobei eben die Indexe erhalten bleiben bei der Array-Zusammenführung? Oder wie könnte man die obige Funktion beschleunigen.
Leider hilft mir an diesem Punkt die Doku auch nicht weiter.

Gute Nacht