Position actuelle: Accueil> Derniers articles> Tutoriel PHP: Utilisez la fonction array_walk_recursive () pour traiter chaque élément dans un tableau multidimensionnel

Tutoriel PHP: Utilisez la fonction array_walk_recursive () pour traiter chaque élément dans un tableau multidimensionnel

M66 2025-08-05

Introduction à la fonction array_walk_recursive () en php

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.

Créer un exemple de tableau multidimensionnel

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),
    ),
);

Définir la fonction de rappel pour calculer le score moyen

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;
    }
}

Appliquer Array_walk_Recursive () pour traverser le tableau et exécuter des rappels

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.

Résultats de la vérification

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
                )
        )
)

Résumer

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.