Gold Vision Communications / USA
 GOLDVISION.COM
Serving the Multimedia Community since 1989.
English Site | German Site 

 Web Hosting

 Virtual Dedicated Servers

 Chequeo de dominio

 Haga su pedido

 Estado del pedido

 Support

 Contáctenos

 Download

 Network

 Network Status

 Webdesign / Templates

 Efectuar pago

 Terms & Conditions

 Imprimir

 Notas Legales

 Declaración de Privacidad
  PHP / array_walk
array_walk

array_walk

(PHP 3>= 3.0.3, PHP 4 )

array_walk --  Wendet eine Benutzerfunktion an jedem Element eines Arrays an

Beschreibung

int array_walk ( array array, string func [, mixed userdata])

Wendet die mittels func angegebene Benutzerfunktion für jedes Element von arr an. func wird der Wert als erster, und der Schlüssel als zweiter Parameter übergeben. Sofern angegeben, wird userdata, als dritter Parameter an die Funktion func übergeben. func muss eine vom Benutzer definierte Funktion sein, und nicht eine native PHP Funktion. Deshalb können Sie array_walk() nicht direkt mit str2lower() benutzen, sondern müssen erst eine eigene Funktion damit erstellen, und diese Funktion als Argument übergeben.

Anmerkung: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Sollte func mehr als zwei oder drei Argumente verlangen, wird - abhängig von userdata - bei jedem Aufruf von func seitens array_walk() eine Warnmeldung generiert. Diese Warnmeldungen können unterdrückt werden, indem man dem Funktionsaufruf von array_walk() ein '@' Zeichen voranstellt, oder mittels der Verwendung von error_reporting().

Anmerkung: Wenn func mit den Werten des Arrays direkt arbeiten soll, geben Sie an, dass der erste Parameter von func als Referenz übergeben werden muss. Dann werden alle Änderungen an diesen Elementen direkt in dem selbst durchgeführt.

Die Modifizierung des Arrays aus func heraus könnte ein unvorhersehbares Verhalten hervorrufen.

Anmerkung: Die Übergabe des Schlüssels und von userdata an func wurde mit PHP 4.0 eingeführt.

In PHP 4 muss reset() aufgerufen werden, da array_walk() den internen Zeiger nicht selbsttätig wieder auf das erste Element zurücksetzt.

Von der Benutzerfunktion aus darf das Array selbst nicht geändert werden, wie zum Beispiel durch Hinzufügen oder Löschen eines Elementes, oder auch Löschen des Arrays, auf das array_walk() angewendet wird. Ist das Array geändert, so ist das Verhalten dieser Funktion undefiniert.

Beispiel 1. array_walk()

$fruits = array ("d"=>"Zitrone", "a"=>"Orange", "b"=>"Banane", "c"=>"Apfel");

function test_alter (&$item1, $key, $prefix) {
    $item1 = "$prefix: $item1";
}

function test_print ($item2, $key) {
    echo "$key. $item2<br>\n";
}
echo "Vorher ...:\n";
array_walk ($fruits, 'test_print');
reset ($fruits);
array_walk ($fruits, 'test_alter', 'Frucht');
echo "... und nachher:\n";
reset ($fruits);
array_walk ($fruits, 'test_print');

Das obige Programm wird folgendes ausgeben:
Vorher ...:
d. Zitrone
a. Orange
b. Banane
c. Apfel
... und nachher:
d. Frucht: Zitrone
a. Frucht: Orange
b. Frucht: Banane
c. Frucht: Apfel

Siehe auch each() und list().


© 1998-2007 Gold Vision Communications All Rights Reserved.