array_walk_recursive () ist eine leistungsstarke Funktion von PHP. Es kann jedes Element in einem mehrdimensionalen Array rekursiv durchlaufen und eine bestimmte Rückruffunktion darauf ausführen. Es ist für Szenarien geeignet, in denen komplexe Array -Strukturen einheitlich verarbeitet werden müssen.
Um die Verwendung von Array_walk_recursive () zu demonstrieren, definieren wir zunächst ein multidimensionales Array, das Schülerinformationen enthält, einschließlich drei Felder:
$students = array(
array(
'name' => 'Zhang San',
'age' => 18,
'scores' => array(80, 85, 90),
),
array(
'name' => 'Li Si',
'age' => 19,
'scores' => array(75, 78, 82),
),
array(
'name' => 'Wang Wu',
'age' => 20,
'scores' => array(90, 95, 88),
),
);
Schreiben Sie als nächstes eine Rückruffunktion, um festzustellen, ob der Schlüsselname Bewertungen sind, und berechnen Sie den Durchschnitt der Bewertungen und fügen Sie dann den entsprechenden Score -Array den Durchschnitt hinzu:
function calculateAverage(&$value, $key)
{
if ($key === 'scores') {
$average = array_sum($value) / count($value);
$value['average'] = $average;
}
}
Verwenden Sie Array_walk_recursive (), um ein mehrdimensionales Array zu durchqueren und die oben definierte Rückruffunktion aufzurufen, um jedes Element zu verarbeiten:
<span class="fun">array_walk_recursive ($ student, 'calculateaverage');</span>
Auf diese Weise wird ein durchschnittlicher Schlüssel zu jedem Schüler -Array eines Schülers hinzugefügt, um die durchschnittliche Punktzahl des Schülers zu speichern.
Durch das Drucken des modifizierten Arrays können wir intuitiv erkennen, dass die durchschnittliche Punktzahl korrekt hinzugefügt wurde:
<span class="fun">print_r ($ student);</span>
Beispielausgabeergebnis:
Array
(
[0] => Array
(
[name] => Zhang San
[age] => 18
[scores] => Array
(
[0] => 80
[1] => 85
[2] => 90
[average] => 85
)
)
[1] => Array
(
[name] => Li Si
[age] => 19
[scores] => Array
(
[0] => 75
[1] => 78
[2] => 82
[average] => 78.33333333333333
)
)
[2] => Array
(
[name] => Wang Wu
[age] => 20
[scores] => Array
(
[0] => 90
[1] => 95
[2] => 88
[average] => 91
)
)
)
In diesem Artikel wird die Verwendung von PHPs array_walk_recursive () -Funktion verwendet, um ein mehrdimensionales Array rekursiv zu durchqueren und eine flexible Verarbeitung von Array -Elementen durch Rückruffunktionen zu implementieren. Mit dieser Methode können Entwickler Daten in verschachtelten Arrays effizient verarbeiten, um den komplexen Geschäftsbedarf zu decken.