PHP8의 배열 함수: array_map()의 효율적인 데이터 처리 방법

WBOY
풀어 주다: 2023-05-16 10:56:02
원래의
2015명이 탐색했습니다.

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() 함수에는 기본 사용법 외에도 데이터 처리에 쉽게 적용할 수 있는 고급 사용법이 있습니다.

  1. 여러 배열 처리

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() 함수에 매개변수로 전달하고, 매개변수로 처리할 두 배열을 전달하고, 반환된 새 배열을 받습니다.

  1. 다차원 배열 처리

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿