array_walk_recursive 함수

함수 array_walk_recursive는 지정된 함수를 다차원 배열의 모든 요소에 적용합니다. 성공적으로 완료되면 true를 반환하고 오류 발생 시 false를 반환합니다. 첫 번째 매개변수로 배열을, 두 번째 매개변수로 콜백을 받습니다.

콜백에는 두 개의 매개변수가 전달됩니다. 첫 번째 매개변수는 배열 요소의 값이고, 두 번째 매개변수는 키입니다.

함수에 전달된 배열 자체는 변경되지 않습니다. 하지만 참조에 의한 전달을 사용하여 이를 달성할 수 있습니다.

구문

phparray_walk_recursive(array|object &$array, callable $callback, mixed $arg = null): bool

예제

다차원 배열을 순회하며 그 키와 요소를 출력해 봅시다:

php<?php
  $arr = [
    'a' => 1,
    'b' => 2,
    'c' => [
      'd' => 3,
      'e' => 4,
    ],
  ];
  
  array_walk_recursive($arr, function($elem, $key) {
    echo $key . ' ' . $elem . '<br>';
  });
?>

코드 실행 결과:

php'a 1'
'b 2'
'd 3'
'e 4'

예제

배열을 순회하며 그 요소들을 제곱해 봅시다:

php<?php
  $arr = [
    'a' => 1,
    'b' => 2,
    'c' => [
      'd' => 3,
      'e' => 4,
    ],
  ];
  
  array_walk_recursive($arr, function(&$elem, $key) {
    $elem = $elem ** 2;
  });
  
  var_dump($arr);
?>

코드 실행 결과:

php[
  'a' => 1,
  'b' => 4,
  'c' => [
    'd' => 9,
    'e' => 16,
  ],
];

함께 보기

  • 함수 array_walk,
    배열 요소에 대해 함수를 호출하는 함수
  • 함수 array_map,
    배열 요소에 함수를 적용하는 함수
  • 함수 array_filter,
    배열을 필터링하는 함수
  • 함수 array_reduce,
    배열을 축소하는 함수