PHP에서 array_map () 함수는 배열의 각 요소에 콜백 함수를 적용하고 콜백 함수에 의해 처리 된 요소가 포함 된 새 배열을 반환하는 매우 유용한 기능입니다. 이렇게하면 숫자 배열, 문자열 배열 및 믹싱 어레이를 다룰 때 매우 효율적이고 편리합니다. 이 기사에서는 array_map () 함수를 사용하여 숫자 배열에서 요소를 변환하는 방법을 자세히 분석합니다.
<span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(</span><span><span class="hljs-keyword">callable</span></span><span> </span><span><span class="hljs-variable">$callback</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$array</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> ...</span><span><span class="hljs-variable">$arrays</span></span><span>): </span><span><span class="hljs-keyword">array</span></span><span>
</span></span>
$ 콜백 : 배열의 각 요소에 적용되는 콜백 함수. 이 콜백 함수는 익명 함수, 내장 함수 또는 사용자 정의 기능 일 수 있습니다.
$ 배열 : 처리 할 첫 번째 배열은 모든 유형의 배열 일 수 있습니다.
$ 배열 : 매개 변수로 여러 배열이있는 경우 해당 요소가 콜백 함수로 하나씩 전달됩니다.
일부 정수가 포함 된 배열이 있고 Array_Map ()을 사용하여 새 배열을 반환하고 싶다고 가정하고 배열의 각 요소는 원래 배열의 해당 요소의 제곱이라고 가정합니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$numbers</span></span><span> = [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>];
</span><span><span class="hljs-variable">$squaredNumbers</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$number</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$number</span></span><span> * </span><span><span class="hljs-variable">$number</span></span><span>;
}, </span><span><span class="hljs-variable">$numbers</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$squaredNumbers</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
출력 결과 :
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">0</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-number">1</span></span><span>] => </span><span><span class="hljs-number">4</span></span><span>
[</span><span><span class="hljs-number">2</span></span><span>] => </span><span><span class="hljs-number">9</span></span><span>
[</span><span><span class="hljs-number">3</span></span><span>] => </span><span><span class="hljs-number">16</span></span><span>
[</span><span><span class="hljs-number">4</span></span><span>] => </span><span><span class="hljs-number">25</span></span><span>
)
</span></span>
이 예에서는 익명 기능으로 각 숫자를 제곱하고 array_map ()을 사용하여 새 배열을 반환합니다.
Array_Map ()은 익명 함수를 사용할 수있을뿐만 아니라 PHP에 내장 된 함수를 사용할 수 있습니다. 예를 들어, sqrt () 함수를 사용하여 각 숫자의 제곱근을 계산할 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$numbers</span></span><span> = [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-number">9</span></span><span>, </span><span><span class="hljs-number">16</span></span><span>, </span><span><span class="hljs-number">25</span></span><span>];
</span><span><span class="hljs-variable">$squareRoots</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(</span><span><span class="hljs-string">'sqrt'</span></span><span>, </span><span><span class="hljs-variable">$numbers</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$squareRoots</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
출력 결과 :
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">0</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-number">1</span></span><span>] => </span><span><span class="hljs-number">2</span></span><span>
[</span><span><span class="hljs-number">2</span></span><span>] => </span><span><span class="hljs-number">3</span></span><span>
[</span><span><span class="hljs-number">3</span></span><span>] => </span><span><span class="hljs-number">4</span></span><span>
[</span><span><span class="hljs-number">4</span></span><span>] => </span><span><span class="hljs-number">5</span></span><span>
)
</span></span>
이 예에서는 SQRT 함수를 직접 전달하고 Array_Map ()은 배열의 각 요소의 함수를 자동으로 호출합니다.
Array_map () 은 여러 배열 처리를 동시에 처리하는 것을 지원합니다. 이 경우 콜백 함수는 각 배열로부터 해당 요소를 수신합니다. 예를 들어, 두 개의 숫자 세트를 저장하는 두 개의 배열이 있다고 가정하고 다음 숫자를 추가하려고합니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$array1</span></span><span> = [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>];
</span><span><span class="hljs-variable">$array2</span></span><span> = [</span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-number">6</span></span><span>];
</span><span><span class="hljs-variable">$sumArray</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$a</span></span><span>, </span><span><span class="hljs-variable">$b</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$a</span></span><span> + </span><span><span class="hljs-variable">$b</span></span><span>;
}, </span><span><span class="hljs-variable">$array1</span></span><span>, </span><span><span class="hljs-variable">$array2</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$sumArray</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
출력 결과 :
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">0</span></span><span>] => </span><span><span class="hljs-number">5</span></span><span>
[</span><span><span class="hljs-number">1</span></span><span>] => </span><span><span class="hljs-number">7</span></span><span>
[</span><span><span class="hljs-number">2</span></span><span>] => </span><span><span class="hljs-number">9</span></span><span>
)
</span></span>
이 예에서는 두 개의 배열을 Array_Map () 에 전달하여 요소별로 추가하여 새 배열을 반환합니다.
Array_Map ()는 원래 배열의 키 이름을 잃게됩니다. 키 이름을 유지하려면 Array_Keys ()와 함께 Array_Map ()의 리턴 결과를 사용하거나 키 이름을 수동으로 유지할 수 있습니다. 그러나 Array_Map () 자체는 원래 배열의 키 이름을 유지하지 않습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$numbers</span></span><span> = [</span><span><span class="hljs-number">1</span></span><span> => </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">2</span></span><span> => </span><span><span class="hljs-number">20</span></span><span>, </span><span><span class="hljs-number">3</span></span><span> => </span><span><span class="hljs-number">30</span></span><span>];
</span><span><span class="hljs-variable">$squaredNumbers</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$number</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$number</span></span><span> * </span><span><span class="hljs-variable">$number</span></span><span>;
}, </span><span><span class="hljs-variable">$numbers</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$squaredNumbers</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
출력 결과 :
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">0</span></span><span>] => </span><span><span class="hljs-number">100</span></span><span>
[</span><span><span class="hljs-number">1</span></span><span>] => </span><span><span class="hljs-number">400</span></span><span>
[</span><span><span class="hljs-number">2</span></span><span>] => </span><span><span class="hljs-number">900</span></span><span>
)
</span></span>
위에서 볼 수 있듯이 키 이름은 인덱스 배열 양식으로 재설정되었습니다. 키 이름을 유지하려면 Array_Map () 및 기타 배열 조작 기능을 결합하는 것을 고려할 수 있습니다.
Array_Map () 은 배열의 각 요소를 변환하는 효율적인 배열 작동 기능입니다.
유효한 콜백 함수 (익명 또는 내장 함수)를 전달하여 배열의 요소를 처리 할 수 있습니다.
Array_Map ()을 사용하면 여러 배열을 동시에 처리 할 수 있으며 콜백 함수는 각 배열의 해당 위치로 요소를 가져옵니다.
이 기능은 원래 배열의 키 이름을 유지하지 않으므로 추가 작업이 필요할 때 다른 기능 지원을 고려할 수 있습니다.
Array_Map ()을 마스터하면 배열을 처리 할 때 코드의 단순성과 가독성을 향상시킬 수 있으며 매우 일반적이고 강력한 도구입니다.
관련 태그:
array_map