PHP에서 배열은 매우 유연하고 강력한 데이터 구조입니다. 우리는 종종 배열의 일부를 다른 배열의 내용으로 교체 해야하는 시나리오를 만듭니다. PHP는 "로컬 교체"를위한 특수한 방법을 제공하지 않지만 Array_Slice 와 Array_merge를 결합 하여이 요구 사항을 쉽게 달성 할 수 있습니다.
아래에서는 Array_Slice 및 Array_Merge를 사용하여 특정 예제에서 배열의 로컬 교체를 구현하는 방법을 설명합니다.
다음과 같은 원본 배열이 있다고 가정합니다.
$original = ['a', 'b', 'c', 'd', 'e'];
이제 우리는 단락을 1에서 3 (즉, 'b', 'c', 'd' )로 대체하여 다른 배열로 바꾸려고합니다.
$replacement = ['x', 'y'];
원래 배열을 세 부분으로 나눕니다.
처음부터 교체 시작 위치까지의 부분;
콘텐츠 교체;
교체 후 나머지 부분은 끝났습니다.
그런 다음이 세 부분을 새로운 배열로 병합하십시오.
<?php
$original = ['a', 'b', 'c', 'd', 'e'];
$replacement = ['x', 'y'];
// 대체하려면 색인을 시작하십시오
$offset = 1;
// 교체 길이(씌우다 'b', 'c', 'd')
$length = 3;
// 세 부분을 꺼내십시오
$before = array_slice($original, 0, $offset);
$after = array_slice($original, $offset + $length);
// 새 배열로 병합하십시오
$result = array_merge($before, $replacement, $after);
print_r($result);
Array
(
[0] => a
[1] => x
[2] => y
[3] => e
)
재사용 가능성을 높이기 위해이 논리를 함수로 캡슐화 할 수 있습니다.
function replace_array_segment(array $array, int $offset, int $length, array $replacement): array {
$before = array_slice($array, 0, $offset);
$after = array_slice($array, $offset + $length);
return array_merge($before, $replacement, $after);
}
사용의 예 :
$original = ['apple', 'banana', 'cherry', 'date', 'elderberry'];
$replacement = ['kiwi', 'lemon'];
$result = replace_array_segment($original, 1, 2, $replacement);
print_r($result);
산출:
Array
(
[0] => apple
[1] => kiwi
[2] => lemon
[3] => date
[4] => elderberry
)
로컬 어레이 교체 기술은 구성 항목, 템플릿 렌더링, 사용자 정의 목록 순서 또는 JSON 데이터 구문 분석 후 구조 조정을 처리 할 때 특히 유용합니다. 예를 들어, 인터페이스 https://api.gitbox.net/data/list 에서 다양한 데이터 배열이 표시되지만 프론트 엔드에서 렌더링하기 전에 컨텐츠의 일부를 교체하려고합니다. 이 방법은 매우 적합합니다.
Array_Slice를 통해 배열의 다른 부분을 얻은 다음 Array_Merge 로 재결합하는 것은 로컬 어레이 교체를 구현하는 효율적이고 명확한 방법입니다. 이 기술은 간단하고 이해하기 쉽고 매우 높은 실용적 가치를 가지고 있습니다. 모든 PHP 개발자가 마스터 해야하는 것은 기본 기술입니다.
관련 태그:
array_slice array_merge