Heim >Backend-Entwicklung >PHP-Tutorial >Verwenden Sie die Funktion array_walk_recursive() von PHP, um eine Rückruffunktion für jedes Element in einem mehrdimensionalen Array auszuführen
Die Funktion array_walk_recursive() in PHP kann jedes Element in einem mehrdimensionalen Array durchlaufen und die angegebene Rückruffunktion aufrufen, um darauf zu arbeiten. In diesem Artikel wird anhand spezifischer Codebeispiele veranschaulicht, wie diese Funktion verwendet wird.
Erstellen wir zunächst ein mehrdimensionales Array, um die Verwendung der Funktion array_walk_recursive() zu demonstrieren. Das Array enthält einige Informationen zum Schüler, z. B. Name, Alter und Noten. Der Code lautet wie folgt:
$students = array( array( 'name' => '张三', 'age' => 18, 'scores' => array(80, 85, 90), ), array( 'name' => '李四', 'age' => 19, 'scores' => array(75, 78, 82), ), array( 'name' => '王五', 'age' => 20, 'scores' => array(90, 95, 88), ), );
Als nächstes definieren wir eine Rückruffunktion, die die durchschnittliche Punktzahl des Schülers zu den Informationen jedes Schülers hinzufügt. Der Code lautet wie folgt:
function calculateAverage(&$value, $key) { if ($key === 'scores') { $average = array_sum($value) / count($value); $value['average'] = $average; } }
In der obigen Rückruffunktion ermitteln wir zunächst, ob der Schlüssel des aktuellen Elements „Scores“ lautet. Wenn ja, berechnen wir die durchschnittliche Punktzahl des Schülers und fügen sie dem Informationsarray des Schülers hinzu.
Schließlich können wir die Funktion array_walk_recursive() verwenden, um das mehrdimensionale Array zu durchlaufen und die Rückruffunktion aufzurufen, die wir für jedes Element definiert haben. Der Code lautet wie folgt:
array_walk_recursive($students, 'calculateAverage');
Nach der Ausführung des obigen Codes wird den Informationen jedes Schülers im Array $students ein „durchschnittlicher“ Schlüssel hinzugefügt, der der durchschnittlichen Punktzahl des Schülers entspricht. Wir können das Ergebnis überprüfen, indem wir das Array drucken. Der Code lautet wie folgt:
print_r($students);
Das Ausgabeergebnis lautet wie folgt:
Array ( [0] => Array ( [name] => 张三 [age] => 18 [scores] => Array ( [0] => 80 [1] => 85 [2] => 90 [average] => 85 ) ) [1] => Array ( [name] => 李四 [age] => 19 [scores] => Array ( [0] => 75 [1] => 78 [2] => 82 [average] => 78.33333333333333 ) ) [2] => Array ( [name] => 王五 [age] => 20 [scores] => Array ( [0] => 90 [1] => 95 [2] => 88 [average] => 91 ) ) )
Es ist ersichtlich, dass die durchschnittliche Punktzahl jedes Schülers erfolgreich zum entsprechenden Schülerinformationsarray hinzugefügt wurde.
Zusammenfassung: In diesem Artikel wird anhand spezifischer Codebeispiele vorgestellt, wie Sie die Funktion array_walk_recursive() von PHP verwenden, um eine Rückruffunktion für jedes Element in einem mehrdimensionalen Array auszuführen. Anhand der obigen Beispiele können wir mehrdimensionale Arrays flexibel durchlaufen und betreiben, um verschiedene erforderliche Funktionen zu erreichen.
Das obige ist der detaillierte Inhalt vonVerwenden Sie die Funktion array_walk_recursive() von PHP, um eine Rückruffunktion für jedes Element in einem mehrdimensionalen Array auszuführen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!