배열 array_walk
(PHP 4, PHP 5, PHP 7, PHP 8)
array_walk — 배열의 모든 구성원에 사용자 제공 함수 적용
설명
array_walk(array|object &$array
, callable $callback
, mixed $arg
= null
): bool
array
배열의 각 요소에 사용자 정의 callback
함수를 적용합니다.
array_walk()는 array
의 내부 배열 포인터의 영향을 받지 않습니다. array_walk()는 포인터 위치에 관계없이 전체 배열을 탐색합니다.
매개변수
array
- 입력 배열입니다.
callback
- 일반적으로
callback
은 두 개의 매개변수를 취합니다.array
매개변수의 값이 첫 번째이고 키/인덱스가 두 번째입니다.메모:
callback
이 배열의 실제 값으로 작동해야 하는 경우callback
의 첫 번째 매개변수를 참조로 지정하십시오. 그런 다음 해당 요소에 대한 모든 변경 사항은 원래 배열 자체에 적용됩니다.메모: 많은 내부 함수(예: strtolower())는 예상보다 많은 인수가 전달되고
callback
으로 직접 사용할 수 없는 경우 경고를 표시합니다.array
의 값만 잠재적으로 변경될 수 있습니다. 그 구조는 변경할 수 없습니다. 즉, 프로그래머는 요소를 추가, 설정 해제 또는 재정렬할 수 없습니다. 콜백이 이 요구 사항을 준수하지 않으면 이 함수의 동작이 정의되지 않고 예측할 수 없습니다. arg
- 선택적
arg
매개변수가 제공되면callback
에 세 번째 매개변수로 전달됩니다.
반환 값
true
를 반환합니다.
오류/예외
PHP 7.1.0부터 callback
함수에 2개 이상의 매개변수(배열 멤버의 값과 키)가 필요한 경우 ArgumentCountError가 발생하고 arg
도 전달된 경우 3개 이상의 매개변수가 필요합니다. 이전에는 이 경우 array_walk()가 callback
을 호출할 때마다 E_WARNING 수준의 오류가 생성되었습니다.
변경 로그
버전 | 설명 |
---|---|
8.0.0 | callback 이 두 번째 또는 세 번째 매개변수가 참조로 전달될 것으로 예상하는 경우 이 함수는 이제 E_WARNING 을 내보냅니다. |
Examples
예제 #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\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
예제 #2 익명 함수를 사용하는 array_walk() 예제
<?php
$elements = ['a', 'b', 'c'];
array_walk($elements, function ($value, $key) {
echo "{$key} => {$value}\n";
});
?>
위의 예는 다음을 출력합니다.
0 => a 1 => b 2 => c
기타
- array_walk_recursive() - 배열의 모든 구성원에 사용자 함수를 재귀적으로 적용
- iterator_apply() - 반복자의 모든 요소에 대한 함수 호출
- list() - 변수를 배열인 것처럼 할당
- each() - 배열에서 현재 키와 값 쌍을 반환하고 배열 커서를 앞으로 이동
- call_user_func_array() - 매개변수 배열로 콜백 호출
- array_map() - 주어진 배열의 요소에 콜백을 적용합니다.
- foreach