1. array_map()
1. array_map() 함수는 배열의 각 값에 사용자 정의 함수를 적용하고 새로운 값 배열로 사용자 정의 함수를 반환합니다. 함수 적용 후 반환 값이 없으면 해당 새 값 배열은 비어 있게 됩니다.
2. 콜백 함수에서 허용하는 매개변수 개수는 array_map() 함수에 전달되는 배열 개수와 일치해야 합니다.
3. 팁: 함수에 하나 이상의 배열을 입력할 수 있습니다.
위상 함수가 두 개의 배열을 입력하는 경우 해당 함수는 두 개의 매개변수도 허용해야 합니다. map이 함수에 값을 전달할 때마다 두 배열 중 하나를 가져와 함수
에 전달합니다. 즉, 여러 배열이 동기적으로 제출되는 대신, 함수에 여러 매개변수가 있어야 합니다.
4. 구문: array array_map (callable callback,arrayarr1 [, 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)); ?>
2. array_walk()
1. array_walk - 사용자 정의 함수를 사용하여 배열
의 각 요소에 대해 콜백 처리를 수행합니다. 2. 구문: bool array_walk (array &array,callablefuncname [, 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, '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
핵심 사항:
맵은 주로 콜백 함수로 처리되는 새 배열을 가져오는 데 사용되며 원하는 결과는 무엇입니까?
walk 중요한 것은 각 매개변수에 대해 콜백 함수를 한 번씩 사용하는 것입니다.
walk는 콜백 함수에 추가 매개변수를 제공하는 것으로 간주할 수 있지만, map은
walk는 주로 배열의 각 값에 대해 작동하며, 연산 결과는 원본에 영향을 줍니다. 배열
맵은 주로 배열에 있는 값에 대해 연산을 수행하고 배열을 반환하여 새 배열을 얻습니다.
도보 반환 값 맵이 있을 수 없습니다. 배열을 채워야 함