(PHP 4, PHP 5, PHP 7)
array_walk — 배열의 각 원소에 대해서 특정 함수를 적용
array
배열의 각 원소에 사용자 정의 함수
function
을 적용한다.
array_walk()는 array
의
내부적인 배열 포인터에 의해 영향을 받지 않는다.
array_walk()는 포인터 위치에 상관없이 전체 배열를
가로지를것이다.
array
입력 배열.
funcname
일반적으로, funcname
는 두 인수를 받습니다.
첫번째는 array
인수의 값이고, 두번째는
키/인덱스입니다.
Note:
funcname
이 배열의 실제 값으로 동작해야 한다면,funcname
의 첫번째 인수를 참조로 설정합니다. 그러면 이러한 원소에 미치는 변경이 원래 배열에도 적용됩니다.
사용자가 콜백 함수에서 array
자체를 변경할 수
없습니다. 즉, 원소를 추가/삭제, 원소를 unset하는 등.
array_walk()에 적용된 배열이 변경되면, 이 함수의
동작은 정의되지 않고, 예측할 수 없습니다.
userdata
선택적인 userdata
인수가 제공되면,
funcname
콜백의 세번째 인수로 넘겨집니다.
성공 시 TRUE
를, 실패 시 FALSE
를 반환합니다.
funcname
함수가 주어진 것보다 더 많은 인수를
요구하면 array_walk()가 funcname
을
호출할 때마다 E_WARNING 등급의
오류가 발생한다. 이런 경고는 array_walk() 호출에 PHP
오류 연산자 @를
덧붙이거나, error_reporting()을 사용해서 은폐할 수 있다.
버전 | 설명 |
---|---|
4.0.0 |
funcname 에 key와
userdata 를 전달하는 기능이 추가.
|
Example #1 array_walk() 예제
<?php
$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";
}
echo "Before ...:\n";
array_walk($fruits, 'test_print');
array_walk($fruits, 'test_alter', 'fruit');
echo "... and after:\n";
array_walk($fruits, 'test_print');
?>
위 예제의 출력:
Before ...: d. lemon a. orange b. banana c. apple ... and after: d. fruit: lemon a. fruit: orange b. fruit: banana c. fruit: apple