이 두 함수의 구체적인 사용법을 살펴보겠습니다. 첫 번째는 array_walk이며 코드는 다음과 같습니다.
<?php $arr = array(2,4,5,6,7); function xin(&$val,$key){ $val = $val*$val; } array_walk($arr, "xin"); var_dump($arr);
array (size=5) 0 => int 4 1 => int 16 2 => int 25 3 => int 36 4 => int 49
<?php function xin($a,$b){ return $a*$b; } $arr = array(2,3,4,5); $brr = array(5,6,7,8); $crr = array_map("xin",$arr,$brr); var_dump($crr);
array (size=4) 0 => int 10 1 => int 18 2 => int 28 3 => int 40
예를 들어 배열을 순회하면 두 함수를 모두 구현할 수 있지만 일반적으로 초점이 다릅니다.
(1)array_map은 n개의 배열을 동시에 탐색할 수 있지만 array_walk는 일반적으로 하나의 배열을 탐색합니다.
(2) array_map에는 반환 값이 있어야 합니다. 반환 값이 새 배열을 형성해야 하기 때문입니다. 그러나 array_walk는 일반적으로 원본 데이터를 변경하는 데 사용되므로 일반적으로 필요하지 않습니다.
(3) array_map은 보통 데이터 역할을 하는데, array_walk는 데이터 삭제나 추가를 권장하지 않고 값만 수정하는 것을 권장합니다.
물론 경우에 따라서는 동일한 기능을 수행할 수 있지만 두 가지가 서로 다르지는 않습니다.
위 내용은 array와 walk의 내용을 포함하여 array_walk와 array_map의 연결과 차이점에 대한 Xin Xing의 간략한 분석을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.