PHP에서 Array_Chunk 및 Array_walk 는 매우 일반적으로 사용되는 배열 작업 기능입니다. 배열을 작은 청크로 자르고 배열의 각 요소에서 콜백 함수를 실행하는 데 사용됩니다. 오늘, 우리는이 두 기능을 조합하여 배열에서 배치 업데이트 작업을 구현하는 방법에 대해 논의 할 것입니다.
Array_Chunk 함수는 큰 배열을 여러 개의 작은 배열 청크로 나눕니다. 기본 구문은 다음과 같습니다.
array_chunk(array $array, int $size, bool $preserve_keys = false): array
$ 배열 : 분할 될 원래 배열.
$ 크기 : 각 작은 조각의 크기.
$ preserve_keys : 원래 배열의 키를 보존할지 여부.
Array_Chunk는 다차원 배열을 반환하고 각 서브 어레이는 지정된 $ 크기 의 최대 크기를 갖습니다.
Array_Walk 함수는 배열을 반복하고 지정된 콜백 함수를 각 요소에 적용하는 데 사용됩니다. 기본 구문은 다음과 같습니다.
array_walk(array &$array, callable $callback): bool
$ 배열 : 작동 할 배열은 참조로 전달됩니다.
$ 콜백 : 각 배열 요소를 처리하는 데 사용되는 콜백 함수.
Array_Walk는 배열의 각 요소에 콜백 함수를 적용하고 콜백 함수는 현재 배열 요소의 값과 키를 매개 변수로 수신합니다.
데이터가 많은 배열을 가지고 있다고 가정하고 배열을 업데이트하려고합니다 (예 : 배열의 일부 값을 수정하거나 배열에 새로운 정보를 추가). 전체 배열의 단일 처리를 피하기 위해 Array_Chunk를 통해 배열을 여러 개의 작은 조각으로 분할 한 다음 Array_Walk를 통해 업데이트 작업을 수행 할 수 있습니다.
다음은 배치 업데이트를 구현하기 위해 array_chunk 및 array_walk를 사용하는 예입니다. 여러 URL 주소가있는 배열을 처리하고 모든 URL의 도메인 이름을 M66.net 으로 변경해야한다고 가정합니다.
<?php
// 원래 배열,여러 가지를 포함합니다 URL
$urls = [
'http://www.example.com/path1',
'https://www.example.com/path2',
'http://www.example.com/path3',
'https://www.example.com/path4',
];
// 사용 array_chunk 将원래 배열分成每块最多 2 강요
$chunks = array_chunk($urls, 2);
// 遍历每个小块并사용 array_walk 来修改每강요
foreach ($chunks as &$chunk) {
// 사용 array_walk 각 블록의 요소를 수정하십시오
array_walk($chunk, function(&$url) {
// 도메인 이름을 대체하십시오 m66.net
$url = preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $url);
});
}
// 출력 업데이트 결과
foreach ($chunks as $chunk) {
print_r($chunk);
}
?>
먼저 여러 URL이 포함 된 배열 $ URL을 정의합니다.
그런 다음 Array_Chunk를 사용하여 배열을 작은 크기 2로 나눕니다. 이러한 방식으로 $ 청크는 2 차원 배열이되며 각 서브 어레이에는 최대 2 개의 요소가 포함됩니다.
다음으로 Array_walk를 사용하여 각 서브 어레이 (즉, 각 작은 블록)를 반복하고 정규 표현식을 통해 각 URL의 도메인 이름 부분을 M66.NET 로 교체합니다.
마지막으로, 우리는 수정 된 배열을 출력합니다.
성능 최적화 : Array_Chunk는 큰 배열을 작은 청크로 나누어 특히 매우 큰 데이터 세트를 처리 할 때 메모리 소비 및 작동량을 줄일 수 있습니다.
유연성 : Array_walk를 사용하여 특정 필드 수정, 문자열 교체 등과 같은 각 청크에서 데이터를 쉽게 사용자 정의합니다.
데이터베이스 레코드 업데이트, 배치 API 요청 등과 같은 배치 데이터 처리.
데이터 청소, 문자열 교체 및 기타 작업.
Array_Chunk 및 Array_walk를 결합하여 대형 배열에서 배치 업데이트 작업을 쉽게 수행 할 수 있습니다. 먼저 Array_chunk를 통해 배열을 작은 청크로 나눈 다음 Array_walk를 사용하여 각 요소를 하나씩 업데이트하십시오. 이 접근법은 코드 로직을 단순화 할뿐만 아니라 메모리 및 성능 효율성을 향상시킵니다.
이 기사가 PHP 에서이 두 기능을 사용하여 배열의 배치 업데이트 작업을 처리하는 방법을 이해하는 데 도움이되기를 바랍니다. 질문이나 추가 요구 사항이 있으시면 언제든지 의사 소통하십시오!