array_walk

(PHP 3>= 3.0.3, PHP 4 )

array_walk --  배열의 개개의 원소에 특정 함수를 적용하여 수행한다.

설명

int array_walk ( array arr, string func, mixed userdata)

함수 funcarr의 각각의 원소에 적용한다. func 에 배열 값이 첫번째 인자로, 배열 키다 두번째 인자로 전달된다. userdata가 주어지면 이는 함수의 세번째 인자로 전달된다.

func 이 두개 혹은 3개 이상의 매개변수가 필요하면, userdata 에 따라서 array_walk()func를 호출할 때마다 매번 경고가 발생한다. 이런 경고는 array_walk() 에 '@' 기호를 덧붙이거나 error_reporting() 를 사용함으로서 은폐될 수 있다.

참고: func이 실제 값으로 동작할 필요가 있다면, func의 첫번째 매개변수는 참조에 의한 전달이 되어야 한다. 그러면, 원소에 가해진 모든 변화가 배열 자체에 반영된다.

참고: 키와 userdata 를 func에 전달하는 것은 4.0 에서 추가되었다.

PHP 4 에서는 reset() 의 호출이 필수적으로 필요하다. 왜냐하면, array_walk() 는 기본적으로 배열을 리셋 시키지 않기 때문이다.

예 1. array_walk()

$fruits = array ("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");



function test_alter (&$item1, $key, $prefix) {

    $item1 = "$prefix: $item1";

}



function test_print ($item2, $key) {

    echo "$key. $item2<br>\n";

}



array_walk ($fruits, 'test_print');

reset ($fruits);

array_walk ($fruits, 'test_alter', 'fruit');

reset ($fruits);

array_walk ($fruits, 'test_print');

each() 그리고 list()를 참고하라.