웹 개발 메모장

[php] array_walk() 배열의 각 요소에 같은 함수 적용시키기 본문

옛날../php

[php] array_walk() 배열의 각 요소에 같은 함수 적용시키기

도로롱주 2018. 3. 21. 19:52




array_walk() : 배열의 각 요소에 같은 함수 적용시키기



array_walk(배열, 함수)


배열의 각 요소들을 함수인자로 넘겨 함수배열의 크기만큼 실행시키는 함수입니다.

사용자 정의 함수인 함수는 인자로 ($value, $key)를 받아 처리합니다.


※순서 주의, ($key, $value) 아닙니다. ($value, $key) 입니다.



다음과 같은 전화번호를 저장하는 배열이 있다고 해봅시다.

1
2
3
4
5
6
$arr_phone = array(
                  'A' => '01011111111',
                  'B' => '01022222222',
                  'C' => '01033333333',
                  'D' => '01044444444',
                  );
cs


위 배열을 아래처럼 변경하고자 합니다.

1
2
3
4
5
6
$arr_phone = array(
                  'A' => '010-1111-1111',
                  'B' => '010-2222-2222',
                  'C' => '010-3333-3333',
                  'D' => '010-4444-4444',
                  );
cs



각 배열의 요소에 다음의 함수를 적용시켜 해결하려고 합니다.

1
2
3
4
function setPhoneNumFormat(&$value)
{
    $value = substr($value,0,3)."-".substr($value,3,4)."-".substr($value,7,4);
}
cs



1. 다음과 같이 반복문을 돌릴 수도 있습니다.

1
2
3
4
foreach ($arr_phone as $key => &$phone)
{
    setPhoneNumFormat($phone);
}
cs


2. array_walk() 를 이용해 적용시킬 수도 있습니다.

1
array_walk($arr_phone'setPhoneNumFormat');
cs




Comments