현재 위치: > 최신 기사 목록> reset () 함수는 Array_Map ()의 실제 사례와 결합되면 PHP 배열 처리를 깊이 이해하게합니다.

reset () 함수는 Array_Map ()의 실제 사례와 결합되면 PHP 배열 처리를 깊이 이해하게합니다.

gitbox 2025-07-02

PHP에서 배열은 가장 일반적으로 사용되는 데이터 구조 중 하나입니다. 배열을 처리 할 때는 종종 내장 기능을 사용하여 Array_Map ()Reset () 와 같은 작업을 단순화합니다. 이 두 기능은 관련이없는 것처럼 보이지만 실제로는 효율적이고 간결한 논리적 처리를 달성하기 위해 실용적인 시나리오에서 조합하여 사용될 수 있습니다. 이 기사는 실제 사례를 사용하여 PHP 배열 처리 기술을 더 잘 마스터하는 데 도움이되는 방법을 깊이 분석합니다.

1. 기능 소개

1. Reset ()

Reset () 는 첫 번째 요소에 대한 내부 포인터를 가리키고 해당 요소의 값을 반환하는 함수입니다.

 <span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">20</span></span><span>, </span><span><span class="hljs-number">30</span></span><span>];
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">reset</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>); </span><span><span class="hljs-comment">// 산출 10</span></span><span>
</span></span>

2. Array_map ()

Array_Map ()은 배열의 각 요소에 콜백 함수를 적용하여 처리 된 새 배열을 반환합니다.

 <span><span><span class="hljs-variable">$arr</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">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$v</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$v</span></span><span> * </span><span><span class="hljs-number">2</span></span><span>;
}, </span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-comment">// $result = [2, 4, 6]</span></span><span>
</span></span>

2. 실제 사례 : 각 데이터 세트에서 첫 번째 값을 추출합니다.

데이터베이스에서 추출한 필드 모음을 나타내는 2 차원 배열이있는 시나리오를 상상해보십시오. 각 데이터 세트의 첫 번째 값에만 관심이 있습니다.

샘플 데이터

 <span><span><span class="hljs-variable">$data</span></span><span> = [
    [</span><span><span class="hljs-string">'apple'</span></span><span>, </span><span><span class="hljs-string">'red'</span></span><span>],
    [</span><span><span class="hljs-string">'banana'</span></span><span>, </span><span><span class="hljs-string">'yellow'</span></span><span>],
    [</span><span><span class="hljs-string">'grape'</span></span><span>, </span><span><span class="hljs-string">'purple'</span></span><span>],
];
</span></span>

목표는 각 서브 어레이에서 첫 번째 요소, 즉 [ 'Apple', 'Banana', 'Grape']를 추출하는 것입니다.

전통적인 관행

일반적으로 우리는 foreach를 사용하여 처리합니다.

 <span><span><span class="hljs-variable">$result</span></span><span> = [];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$data</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$item</span></span><span>) {
    </span><span><span class="hljs-variable">$result</span></span><span>[] = </span><span><span class="hljs-title function_ invoke__">reset</span></span><span>(</span><span><span class="hljs-variable">$item</span></span><span>);
}
</span></span>

가능하지만 코드는 약간 장점입니다. Array_Map ()Reset ()를 사용하여 최적화 할 수 있습니다.

우아한 연습 : reset ()는 array_map ()와 함께 사용됩니다.

 <span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(</span><span><span class="hljs-string">'reset'</span></span><span>, </span><span><span class="hljs-variable">$data</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span></span>

출력 결과 :

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; apple
    [</span><span><span class="hljs-meta">1</span></span><span>] =&gt; banana
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; grape
)
</span></span>

간결하지 않습니까? 여기서 array_map ()는 $ 데이터 의 각 서브 어레이에서 rest ()을 호출하여 각 서브 어레이의 첫 번째 요소를 반환합니다.

3. 주목하고 고급 사용법

1. 참조 유형에 대한 질문

Reset ()는 실제로 배열의 내부 포인터를 수정하지만 Array_Map () 에서 사용하면 각 서브 어레이가 값으로 전달되므로 원래 배열에 영향을 미치지 않습니다. 이것이이 사용법이 안전한 이유입니다.

2. 서브 어레이가 비어 있습니다

서브 어레이가 비어 있으면 Reset ()가 false를 반환합니다. 따라서 필터링 프로세스를 추가 할 수 있습니다.

 <span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_filter</span></span><span>(</span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(</span><span><span class="hljs-string">'reset'</span></span><span>, </span><span><span class="hljs-variable">$data</span></span><span>), function(</span><span><span class="hljs-variable">$val</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$val</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>;
});
</span></span>

3. 사용자 정의 추출 로직

두 번째 요소를 얻는 것과 같은보다 복잡한 추출 로직이 필요한 경우 익명 함수를 결합 할 수 있습니다.

 <span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$item</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$item</span></span><span>[</span><span><span class="hljs-number">1</span></span><span>] ?? </span><span><span class="hljs-literal">null</span></span><span>;
}, </span><span><span class="hljs-variable">$data</span></span><span>);
</span></span>

4. 요약

이 경우 Reset ()Array_map () 의 영리한 조합은 코드를보다 간결하고 우아하게 만들뿐만 아니라 가독성과 유지 보수를 향상시킬 수 있음을 알 수 있습니다. 이 조합 방법은 2 차원 어레이의 특정 위치에서 데이터 추출을 처리하는 데 매우 적합하며 모든 PHP 개발자가 마스터 해야하는 팁입니다.

이러한 기본적이고 강력한 기능 조합을 마스터하면 배열 처리에서 효율성과 코드 품질이 크게 향상됩니다.