PHP의 array_walk() 함수는 사용자가 정의한 콜백 함수를 배열의 모든 요소에 순차적으로 적용하는 내장 함수입니다. 반복문 없이 단 한 번의 호출로 배열 전체를 처리할 수 있어 코드를 더욱 간결하게 작성할 수 있습니다. 실행에 성공하면 TRUE를, 실패하면 FALSE를 반환합니다.
구문
array_walk(arr, custom_func, parameter)
매개변수
arr − 콜백 함수를 적용할 대상 배열입니다. (필수)
custom_func − 각 배열 요소에 적용할 사용자 정의 콜백 함수입니다. (필수)
parameter − 콜백 함수에 추가로 전달할 매개변수입니다. (선택)
반환값
array_walk() 함수는 실행에 성공하면 TRUE, 실패하면 FALSE를 반환합니다.
예제
다음은 array_walk() 함수를 사용해 학생 목록을 출력하는 예제입니다.
<?php
function display($val,$key) {
echo "$key id : Student $val<br>";
}
$arr = array("p"=>"Tom","q"=>"Jack","r"=>"Amit");
array_walk($arr,"display");
?>실행 결과
위 예제를 실행하면 다음과 같은 결과가 출력됩니다.
p id : Student Tom q id : Student Jack r id : Student Amit
위 예제에서 콜백 함수 display()는 배열의 값($val)과 키($key)를 인자로 받아 각 요소마다 문자열을 출력합니다. 이처럼 array_walk()는 foreach 문으로 직접 반복하지 않고도 배열 전체에 동일한 작업을 손쉽게 적용할 수 있습니다.
활용 팁
콜백 함수 안에서 배열의 실제 값을 수정하려면 첫 번째 매개변수 앞에 참조 연산자(&)를 붙여야 합니다. 또한 세 번째 매개변수를 활용하면 콜백 함수에 추가 데이터를 전달할 수 있어 더 다양한 처리가 가능합니다.