array_walk_recursive () est une fonction puissante fournie par PHP. Il peut traverser récursivement chaque élément dans un tableau multidimensionnel et exécuter une fonction de rappel spécifiée dessus. Il convient aux scénarios où les structures de tableau complexes doivent être traitées uniformément.
Pour démontrer l'utilisation de array_walk_recursive (), nous définissons d'abord un tableau multidimensionnel contenant des informations sur les étudiants, y compris trois champs:
$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),
),
);
Ensuite, rédigez une fonction de rappel pour détecter si le nom de clé est les scores et calculez la moyenne des scores, puis ajoutez la moyenne au tableau de score correspondant:
function calculateAverage(&$value, $key)
{
if ($key === 'scores') {
$average = array_sum($value) / count($value);
$value['average'] = $average;
}
}
Utilisez array_walk_recursive () pour traverser un tableau multidimensionnel et appeler la fonction de rappel définie ci-dessus pour traiter chaque élément:
<span class="fun">array_walk_recursive ($ étudiants, «calculAeverage»);</span>
De cette façon, une clé moyenne sera ajoutée au tableau de notes de chaque étudiant pour stocker le score moyen de l'étudiant.
En imprimant le tableau modifié, nous pouvons voir intuitivement que le score moyen a été correctement ajouté:
<span class="fun">print_r ($ étudiants);</span>
Exemple de résultats de sortie:
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
)
)
)
Cet article présente comment utiliser la fonction Array_Walk_Recursive () de PHP pour traverser récursivement un tableau multidimensionnel et implémenter un traitement flexible des éléments du tableau via des fonctions de rappel. Grâce à cette méthode, les développeurs peuvent traiter efficacement les données dans des tableaux imbriqués pour répondre aux besoins commerciaux complexes.