array_walk — 배열의 각 원소에 대해서 특정 함수를 적용 > 개발자팁

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

array_walk — 배열의 각 원소에 대해서 특정 함수를 적용 정보

PHP array_walk — 배열의 각 원소에 대해서 특정 함수를 적용

본문

array_walk — 배열의 각 원소에 대해서 특정 함수를 적용

 

 

bool array_walk ( array &$array , callback $funcname [, mixed $userdata ] )

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

 

추천
0
  • 복사

댓글 0개

© SIRSOFT
현재 페이지 제일 처음으로