現在の位置: ホーム> 最新記事一覧> PHPチュートリアル:array_walk_recursive()関数を使用して、各要素を多次元配列で処理する

PHPチュートリアル:array_walk_recursive()関数を使用して、各要素を多次元配列で処理する

M66 2025-08-05

phpのarray_walk_recursive()関数の紹介

array_walk_recursive()は、PHPによって提供される強力な関数です。多次元配列内の各要素を再帰的に通過し、指定されたコールバック関数を実行できます。複雑な配列構造を均一に処理する必要があるシナリオに適しています。

サンプルの多次元配列を作成します

array_walk_recursive()の使用を実証するために、最初に3つのフィールドを含む学生情報を含む多次元配列を定義します。

 $students = array(
    array(
        'name' => 'チャン・サン',
        'age' => 18,
        'scores' => array(80, 85, 90),
    ),
    array(
        'name' => 'li si',
        'age' => 19,
        'scores' => array(75, 78, 82),
    ),
    array(
        'name' => '王ウー',
        'age' => 20,
        'scores' => array(90, 95, 88),
    ),
);

コールバック関数を定義して、平均スコアを計算します

次に、コールバック関数を書き込み、キー名がスコアであるかどうかを検出し、スコアの平均を計算し、対応するスコアアレイに平均を追加します。

 function calculateAverage(&$value, $key)
{
    if ($key === 'scores') {
        $average = array_sum($value) / count($value);
        $value['average'] = $average;
    }
}

array_walk_recursive()を適用して、配列をトラバースしてコールバックを実行します

array_walk_recursive()を使用して、多次元配列をトラバースし、上記のコールバック関数を呼び出して各要素を処理します。

 <span class="fun">array_walk_recursive($ sustent、 &#39;calculateaverage&#39;);</span>

このようにして、各生徒のグレードアレイに平均キーが追加され、学生の平均スコアを保存します。

検証結果

変更されたアレイを印刷することにより、平均スコアが正しく追加されていることが直感的に確認できます。

 <span class="fun">print_r($ sustent);</span>

出力の例の例:

 Array
(
    [0] => Array
        (
            [name] => チャン・サン
            [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] => 王ウー
            [age] => 20
            [scores] => Array
                (
                    [0] => 90
                    [1] => 95
                    [2] => 88
                    [average] => 91
                )
        )
)

要約します

この記事では、PHPのarray_walk_recursive()関数を使用して、多次元配列を再帰的にトラバースし、コールバック関数を介して配列要素の柔軟な処理を実装する方法を紹介します。この方法により、開発者はネストされたアレイでデータを効率的に処理して、複雑なビジネスニーズを満たすことができます。