PHP8에 새로 추가된 배열 함수 - array_map()은 효율적인 데이터 처리 방법입니다. 원래 배열을 수정하지 않고 배열의 요소를 하나씩 처리할 수 있으며, 처리 결과가 새로운 배열을 형성합니다. 이 기사에서는 array_map() 함수의 사용법과 데이터 처리에서의 응용을 소개합니다.
1. array_map() 함수의 기본 사용법
array_map() 함수의 구문은 다음과 같습니다.
array_map(callable $callback, array ...$arrays): array
이 함수 $callback의 첫 번째 매개 변수는 호출 가능한 함수 또는 메서드이고 두 번째 매개 변수는 1입니다. 또는 그 이상의 배열. array_map() 함수는 매개변수에 지정된 배열에 따라 동일한 첨자 위치의 요소를 꺼내어 처리를 위해 콜백 함수에 전달하고 처리 결과를 새로운 배열로 반환합니다. 따라서 전달된 배열 매개변수의 길이는 동일해야 합니다.
다음은 array_map() 함수를 사용하여 배열의 요소를 제곱하고 새 배열을 반환하는 간단한 예입니다.
$array = [1, 2, 3, 4, 5]; function square($x) { return $x * $x; } $result = array_map('square', $array); print_r($result); // 输出:[1, 4, 9, 16, 25]
위 예에서는 특정 값을 계산할 수 있는 square() 함수를 정의했습니다. 숫자의 제곱입니다. array_map() 함수에 함수 이름을 매개변수로 전달하고, 두 번째 매개변수로 처리할 배열을 전달하고, 반환된 새 배열을 받습니다.
2. array_map() 함수의 고급 사용법
array_map() 함수에는 기본 사용법 외에도 데이터 처리에 쉽게 적용할 수 있는 고급 사용법이 있습니다.
array_map() 함수는 여러 배열을 처리하고, 서로 다른 배열의 동일한 첨자 위치에 있는 요소를 결합하여 콜백 함수에 전달할 수 있습니다. 다음은 array_map() 함수를 사용하여 두 개의 배열을 처리하는 예입니다.
$array1 = [1, 2, 3]; $array2 = [4, 5, 6]; function combine($x, $y) { return $x * $y; } $result = array_map('combine', $array1, $array2); print_r($result); // 输出:[4, 10, 18]
위의 예에서는 두 배열의 동일한 첨자 위치에 있는 요소를 곱하고 결과를 반환하는 콜백 함수인 Combine()을 정의했습니다. 계산 결과. 함수 이름을 array_map() 함수에 매개변수로 전달하고, 매개변수로 처리할 두 배열을 전달하고, 반환된 새 배열을 받습니다.
array_map() 함수는 다차원 배열도 처리할 수 있으며, 2차원 배열이나 고차원 배열의 경우 처리할 차원을 지정할 수 있습니다. 다음은 array_map() 함수를 사용하여 2차원 배열을 처리하는 예입니다.
$array = [ [1, 2, 3], [4, 5, 6] ]; function sum($arr) { return array_sum($arr); } $result = array_map('sum', $array); print_r($result); // 输出:[6, 15]
위 예에서는 배열 요소의 합을 계산하고 다음을 반환하는 콜백 함수 sum()을 정의합니다. 계산 결과. array_map() 함수에 함수 이름을 매개변수로 전달하고, 처리할 배열을 매개변수로 전달하고, 반환된 새 배열을 받습니다.
다차원 배열을 처리할 때 차원 매개변수를 지정하여 처리할 요소의 차원을 나타낼 수 있습니다. 다음은 array_map() 함수를 사용하여 3차원 배열을 처리하는 예입니다.
$array = [ [ [1, 2], [3, 4] ], [ [5, 6], [7, 8] ] ]; function sum($arr) { return array_sum($arr); } $result = array_map('sum', array_column($array, 0), array_column($array, 1)); print_r($result); // 输出:[16, 20]
위 예에서는 처리할 3차원 배열을 두 개의 2차원 배열로 변환합니다. 그 중 하나는 2차원 배열은 두 번째 차원의 요소입니다. 이 두 배열을 동시에 array_map() 함수에 매개변수로 전달하고 콜백 함수 sum()을 지정하여 최종적으로 새로운 1차원 배열을 얻습니다.
3. array_map() 함수의 성능 최적화
array_map() 함수를 사용할 때 성능 최적화 문제에 주의해야 합니다. 처리해야 할 배열이 크고 처리를 위한 콜백 함수가 매우 간단한 경우 데이터 처리에 foreach() 루프를 사용하여 작업 효율성을 높이는 것을 고려할 수 있습니다.
다음은 array_map() 함수를 사용하여 대규모 배열을 처리할 때의 성능 비교입니다.
$array = range(1, 100000); $start_time = microtime(true); function add1($n) { return $n + 1; } $result = array_map('add1', $array); $end_time = microtime(true); echo 'array_map()函数耗时:' . ($end_time - $start_time) . '秒'; $start_time = microtime(true); foreach ($array as &$n) { $n += 1; } $result = $array; $end_time = microtime(true); echo 'foreach()函数耗时:' . ($end_time - $start_time) . '秒';
위 예에서는 array_map() 함수와 foreach() 루프를 사용하여 100,000개의 요소가 포함된 배열을 처리합니다. , two 방법은 배열의 각 요소에 1을 더하고 새 배열을 반환하는 것입니다. 실행 결과에서 알 수 있듯이 데이터 처리에 foreach()를 사용하는 것이 array_map() 함수를 사용하는 것보다 빠릅니다.
4. 요약
array_map() 함수는 PHP8에 새로 추가된 효율적인 데이터 처리 방법으로, 원래 배열을 수정하지 않고 배열의 요소를 처리하고, 처리 결과로 구성된 새로운 배열을 반환할 수 있습니다. 기본 사용법 외에도 array_map() 함수에는 데이터 처리에 적용할 수 있는 몇 가지 고급 사용법이 있습니다. 그러나 데이터 처리를 위해 array_map() 함수를 사용할 때는 코드의 실행 효율성을 높이기 위해 성능 최적화 문제에 주의할 필요가 있습니다.
위 내용은 PHP8의 배열 함수: array_map()의 효율적인 데이터 처리 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!