Array_Walk_Recursive ()는 PHP가 제공하는 강력한 기능입니다. 다차원 배열에서 각 요소를 재발적으로 통과하고 지정된 콜백 함수를 실행할 수 있습니다. 복잡한 배열 구조를 균일하게 처리 해야하는 시나리오에 적합합니다.
Array_Walk_Recursive ()의 사용을 보여주기 위해 먼저 세 가지 필드를 포함하여 학생 정보를 포함하는 다차원 배열을 정의합니다.
$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 ()를 사용하여 다차원 배열을 가로 지르고 위에서 정의 된 콜백 함수를 호출하여 각 요소를 처리합니다.
<span class="fun">Array_Walk_Recursive ($ 학생, 'CalculateAverage');</span>
이러한 방식으로 평균 키가 각 학생의 학년 배열에 추가되어 학생의 평균 점수를 저장합니다.
수정 된 배열을 인쇄하면 평균 점수가 올바르게 추가되었음을 직관적으로 알 수 있습니다.
<span class="fun">print_r ($ 학생);</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 () 함수를 사용하여 다차원 배열을 재귀 적으로 가로 지르고 콜백 함수를 통해 어레이 요소의 유연한 처리를 구현하는 방법을 소개합니다. 이 방법을 통해 개발자는 중첩 어레이에서 데이터를 효율적으로 처리하여 복잡한 비즈니스 요구를 충족시킬 수 있습니다.