Mailinglisten-Archive |
"Berger, Uwe 2282 FIT-CP6" wrote: > ich benötige einen kurzen Denkanstoß für den Ersatz der php-Funktion > array_unshift die erst unter php4.0 (lt. Manual) zur Verfügung steht. Hat > jemand eine kurze Code-Zeile im Kopf...? In PHP3 kannst Du die Funktion nicht genau nachbauen, weil keine Funktionen mit variabler Parameterzahl möglich sind. Dieses Feature kommt erst mit PHP4, näheres findet such unter dem Stichwort "variable-length argument lists", http://www.php.net/manual/functions.arguments.php#functions.variable-arg-list . Deshalb muß man zu einem kleinen Trick greifen und als zweiten Parameter ein Array mit variabler Zahl von Elementen verwenden. Zur Steigerung des Komfort, dürfen auch Skalare an die Funktion übergeben werden. Die Funktion prüft hierzu: if (!is_array($base)) und wandelt ggf. den Skalar in ein Array um: $base = array($base). /** * PHP3 Version von array_unshift() * Behandelt ein Array wie einen Stack, fügt neue * Daten vor dem ersten Element ein. * _(at)_param mixed $base bisheriges Array oder Skalar * _(at)_param mixed $newelements Array (oder Skalar) mit den neuen Elementen * _(at)_return array $together Array mit den neuen Elementen * vor den Elementen des alten Arrays */ function my_array_unshift($base, $newelements) { if (!is_array($base)) $base = array($base); if (!is_array($newelements)) $newelements = array($newelements); $newarray = array(); while (list($k, $v)=each($newelements)) $newarray[$k]=$v; while (list($k, $v)=each($base)) $newarray[$k]=$v; return $newarray; } // end func my_array_unshift Ulf -- Ulf Wendel NetUSE Kommunikationstechnologie GmbH Siemenswall, D-24107 Kiel, Germany Fon: +49 431 386435 00 -- Fax: +49 431 386435 99
php::bar PHP Wiki - Listenarchive