>  기사  >  백엔드 개발  >  PHP 함수 라이브러리의 array_walk() 함수 사용법에 대한 자세한 소개

PHP 함수 라이브러리의 array_walk() 함수 사용법에 대한 자세한 소개

WBOY
WBOY원래의
2023-06-27 13:47:12796검색

PHP 함수 라이브러리의 array_walk() 함수 사용법에 대한 자세한 소개

array_walk() 함수는 PHP에서 매우 일반적으로 사용되는 배열 함수입니다. 해당 함수는 배열의 각 요소에 대해 사용자 정의 함수를 실행하는 것입니다. array_walk() 함수를 사용하면 코드 작성을 크게 단순화하고 프로그램 효율성을 향상시킬 수 있으며, 특히 배열을 처리할 때 매우 유용합니다.

Usage

array_walk() 함수 구문은 다음과 같습니다:
array_walk (array &$array , callable $callback [, Mixed $userdata = NULL ] )

매개변수 설명:

  1. $array: 필수, 필요 처리된 배열.
  2. $callback: 반드시 실행되어야 하는 함수.
  3. $userdata: 선택사항이며 콜백 함수에 전달되는 추가 매개변수(값 또는 배열일 수 있음)

콜백 함수

콜백 함수는 array_walk()에서 가장 중요한 부분이므로 직접 정의해야 합니다. 콜백 함수의 기본 구문은 다음과 같습니다.
function callback_function (&$array_item, $array_key, $userdata) {
//function code here
}

where:

  1. &$array_item: 필수, 값 현재 배열 요소. 함수는 참조로 전달되므로 & 기호를 사용하여 요소를 직접 조작할 수 있습니다.
  2. $array_key: 선택 사항이며 현재 배열 요소의 키입니다. 배열 키에 대해 작업하려는 경우 이 매개변수를 사용할 수 있습니다.
  3. $userdata: 선택사항이며 콜백 함수에 전달되는 추가 매개변수(값 또는 배열일 수 있음)

간단한 사용 예를 살펴보겠습니다.

$arr = array(1,2,3,4,5,6,7);
function곱하기(&$item, $key, $factor) {
$item *= $factor;
}
array_walk($arr, 'multiply', 3);
print_r($arr);

출력 결과는 다음과 같습니다.

Array
(
[0] = > 3
[1] => 6
[2] => 12
[4] => 18
[6] 21
)

위의 예에서는 먼저 $arr 배열을 정의한 다음 콜백 함수 Multiply()를 정의했습니다. 이 콜백 함수는 세 개의 매개변수를 받습니다. 첫 번째 매개변수는 현재 배열 요소의 값, 두 번째 매개변수는 현재 배열 요소의 키 값, 세 번째 매개변수는 콜백 함수에 전달되는 추가 매개변수, 즉 승수.

array_walk() 함수에서는 첫 번째 매개변수로 $arr 배열을 호출하고, 두 번째 매개변수로 곱하기()를 호출하고, 세 번째 매개변수로 숫자 3을 곱하기() 함수에 전달합니다. 이러한 방식으로 Multiply() 함수는 배열의 각 요소에 3을 곱하고 배열 값을 직접 수정하여 최종적으로 새 배열이 생성됩니다.

Notes

콜백 함수에는 현재 배열 요소의 값인 하나의 매개 변수가 있어야 합니다. 현재 키 값을 작동해야 하는 경우 두 번째 매개 변수를 추가해야 합니다.
  1. 비참조 배열의 경우 해당 값은 콜백 함수에서 직접 수정할 수 없습니다.
  2. 콜백 함수의 배열 요소의 키 값은 원래 배열과 일치합니다. array_walk()를 사용하여 숫자가 아닌 키가 있는 배열을 처리하는 경우에도 배열의 키 값은 그대로 유지됩니다. .
  3. 요약

array_walk() 함수는 배열 처리를 단순화하고 향상시키는 데 도움이 되는 매우 강력한 배열 함수입니다. 실제 개발에서는 필요에 따라 콜백 함수를 정의하고 array_walk() 함수를 유연하게 사용하여 코드를 더욱 간결하고 효율적으로 만들 수 있습니다.

위 내용은 PHP 함수 라이브러리의 array_walk() 함수 사용법에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.