>백엔드 개발 >PHP 튜토리얼 >PHP에서 array_map 함수와 array_walk 함수의 사용법 차이

PHP에서 array_map 함수와 array_walk 함수의 사용법 차이

不言
不言원래의
2018-08-15 09:31:432502검색

이 글의 내용은 PHP에서 array_map 함수와 array_walk 함수의 사용법 차이에 대한 내용입니다. 필요한 친구들이 참고하면 도움이 될 것입니다.

array_map():
1. array_map() 함수는 배열의 각 값에 사용자 정의 함수를 적용하고, 사용자 정의 함수가 적용된 후 새로운 값이 포함된 배열을 반환합니다. 이후에 적용됩니다. 반환 값이 없으면 해당 새 값 배열은 비어 있게 됩니다.
2. 콜백 함수에서 허용하는 매개변수 수는 array_map() 함수에 전달된 배열 수와 일치해야 합니다.
3. 팁: 함수에 하나 이상의 배열을 입력할 수 있습니다.

위상 함수가 2개의 배열을 입력하는 경우 해당 함수는 두 개의 매개변수도 허용해야 합니다. map이 함수에 값을 전달할 때마다 두 배열 중 하나를 가져와서
number 함수에 전달합니다. 즉, 여러 배열을 동시에 제출하고 다음
여러 배열을 제출하는 대신 함수에 여러 매개변수

4가 있어야 합니다. 구문: array array_map ( callable arr1 [ , array $… ] )

예:

<?php //单数组形式
function myfunction($v){
    if ($v==="Dog")
    {        
    return "Fido";
    }    
    return $v;
}
$a=array("Horse","Dog","Cat");
print_r(array_map("myfunction",$a));//多数组形式
function myfunction1($v1,$v2){
    if ($v1===$v2)
    {        
    return "same";
    }    
    return "different";
}
$a1=array("Horse","Dog","Cat");
$a2=array("Cow","Dog","Rat");
print_r(array_map("myfunction1",$a1,$a2));
?>

array_walk():
1. array_walk — 사용자 정의 함수를 사용하여 배열의 각 요소에 대해 콜백 처리를 수행합니다.
2 구문: bool array_walk ( array &

funcname [,mixed $userdata = NULL ] )

매개변수:

$array 입력 배열입니다. $funcname 콜백 함수, 일반적으로 $funcname은 두 개의 매개변수를 허용합니다.

$array 매개변수의 값이 첫 번째로 사용되고, 키 이름이 두 번째로 사용됩니다.

$userdata 선택적 매개변수 $userdata가 제공되면 $funcname에 세 번째 매개변수로 전달됩니다.

참고:

$funcname이 배열의 값에 대해 직접 작동해야 하는 경우 funcname에 대한 첫 번째 인수를 참조로 지정합니다(앰퍼샌드 추가). 이렇게 하면
이 셀을 변경하면 원래 배열 자체도 변경됩니다.

반환 값:

성공 시 TRUE를 반환하고, 실패 시 FALSE를 반환합니다.

예:

<?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, &#39;test_print&#39;);//带额外参数
array_walk($fruits, &#39;test_alter&#39;, &#39;fruit&#39;);
echo "... and after:\n";
array_walk($fruits, &#39;test_print&#39;);

위 루틴은 다음을 출력합니다.

Before ...:
d. lemon
a. orange
b. banana
c. apple ... and after:
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple

핵심 포인트:

map은 주로 콜백 함수로 처리된 새 배열을 가져오는 것이며 원하는 것은 결과입니다.

walk는 주로 각 매개변수에 대해 콜백 함수를 한 번씩 사용합니다. 중요한 것은 처리 과정입니다.

walk는 콜백 함수에 추가 매개변수를 제공하는 것으로 간주할 수 있지만 map은 그럴 수 없습니다.

walk는 주로 배열의 각 값에 대해 작동하며, 연산 결과는 주로 원래 배열의 값에 영향을 미칩니다. , 배열을 반환하여 새 배열을 얻습니다.

walk 반환 값은 없지만 배열을 채워야 하기 때문에 맵이 필요합니다.

추천 관련 기사:

include() 함수와 차이점은 무엇입니까? PHP의 require() 함수?

PHP :array_walk()와 array_map()의 차이점

PHP의 array_map, array_filter 및 array_walk의 차이점

위 내용은 PHP에서 array_map 함수와 array_walk 함수의 사용법 차이의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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