현재 위치: > 최신 기사 목록> 배열에서 정수를 필터링하고 싶습니까? IS_INT 및 ARRAY_FILTER의 효율적인 조합 사용법을 확인하십시오.

배열에서 정수를 필터링하고 싶습니까? IS_INT 및 ARRAY_FILTER의 효율적인 조합 사용법을 확인하십시오.

gitbox 2025-08-27

PHP에서 처리 어레이는 특히 데이터 정리, 필터링 및 변환 중 일반적인 작업입니다. 혼합 어레이에서 모든 정수 값을 추출해야 할 때 몇 가지 도전이있을 수 있습니다. 다행히도 PHP는 프로세스를 효율적이고 간단하게 만드는 강력한 도구를 제공합니다. 이 기사는 IS_INTARRAY_FILTER 기능의 조합을 통해 배열에서 정수를 쉽게 필터링하는 방법을 보여줍니다.

1. Array_Filter 소개

Array_Filter 함수는 배열을 반복하고 콜백 함수를 사용하여 배열에서 요소를 유지할지 여부를 결정하는 데 사용됩니다. 구문은 다음과 같습니다.

 <span><span><span class="hljs-title function_ invoke__">array_filter</span></span><span>(</span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$array</span></span><span>, ?</span><span><span class="hljs-keyword">callable</span></span><span> </span><span><span class="hljs-variable">$callback</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$mode</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>): </span><span><span class="hljs-keyword">array</span></span><span>
</span></span>
  • $ 배열 : 보류중인 배열.

  • $ 콜백 : 배열에서 요소를 필터링하는 콜백 함수. 콜백이 true를 반환하면 요소가 유지됩니다. False가 반환되면 요소가 폐기됩니다.

  • $ 모드 : 필터 모드는 콜백 함수의 매개 변수를 결정합니다.

$ 콜백 매개 변수가 전달되지 않으면 Array_Filter는 기본적으로 False 값 (빈 문자, 0, NULL 등)의 값으로 요소를 삭제합니다.

2. IS_INT 소개

IS_INT는 변수가 정수인지 확인하는 PHP 내장 기능입니다. 구문은 다음과 같습니다.

 <span><span><span class="hljs-title function_ invoke__">is_int</span></span><span>(</span><span><span class="hljs-keyword">mixed</span></span><span> </span><span><span class="hljs-variable">$var</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
  • $ var : 확인할 변수입니다.

  • 반환 값 : $ var가 정수 인 경우 true ; 그렇지 않으면 false 를 반환합니다.

3. IS_INTARRAY_FILTER를 결합하여 정수 필터링을 구현합니다

배열에서 모든 정수를 필터링하는 가장 쉬운 방법은 Array_Filter 와 함께 IS_INT를 사용하는 것입니다. 각 배열 요소가 정수인지 확인하기 위해 is_int를 호출하는 콜백 함수를 제공하면됩니다.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>

</span><span><span class="hljs-comment">// 혼합 유형의 배열을 정의하십시오</span></span><span>
</span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">'apple'</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3.5</span></span><span>, </span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-string">'banana'</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-literal">null</span></span><span>];

</span><span><span class="hljs-comment">// 사용 array_filter 그리고 is_int 정수를 필터링하십시오</span></span><span>
</span><span><span class="hljs-variable">$integers</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_filter</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, </span><span><span class="hljs-string">'is_int'</span></span><span>);

</span><span><span class="hljs-comment">// 출력 결과</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$integers</span></span><span>);

</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

산출:

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">0</span></span><span>] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [</span><span><span class="hljs-number">2</span></span><span>] =&gt; </span><span><span class="hljs-number">2</span></span><span>
    [</span><span><span class="hljs-number">4</span></span><span>] =&gt; </span><span><span class="hljs-number">4</span></span><span>
    [</span><span><span class="hljs-number">6</span></span><span>] =&gt; </span><span><span class="hljs-number">5</span></span><span>
)
</span></span>

이 예에서는 Array_Filter가 $ array 배열을 반복하고 각 요소의 is_int 함수를 호출합니다. 요소가 정수 인 경우에만 IS_INT는 TRUE를 반환하고 Array_Filter는 요소를 유지합니다.

4. 주목할만한 것들

4.1 값 0 및 False

배열에 0 또는 false가 포함 된 경우 이러한 값을 제외하라고 명시 적으로 지시하지 않는 한이 요소는 Array_Filter에 의해 필터링되지 않습니다. 값이 아닌 정수 유형에만 관심이있는 경우 IS_INT 필터링을 계속 사용할 수 있습니다.

4.2 기타 숫자 유형

플로팅 포인트 번호 (예 : 3.5 )를 걸러 내려면 콜백 함수의 논리를 조정하여이를 수행 할 수 있습니다. 예를 들어, IS_FLOAT를 사용하여 추가 필터를 사용하십시오.

 <span><span><span class="hljs-variable">$filtered</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_filter</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, function(</span><span><span class="hljs-variable">$value</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">is_int</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>) &amp;&amp; !</span><span><span class="hljs-title function_ invoke__">is_float</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>);
});
</span></span>

5. 성능 최적화

Array_Filter 자체는 더 큰 데이터 세트를 처리 할 수있는 효율적인 기능입니다. 처리 할 거대한 배열이있는 경우 IS_INT 와 같은 함수의 콜백 로직이 가능한 한 간단한 지 확인하십시오. 콜백 함수는 반복 할 때마다 호출되기 때문입니다.

성능이 높은 요구 사항이있는 경우 기본 Foreach 루프를 사용하여 Array_Filter 의 일부 오버 헤드를 피하기 위해 수동으로 어레이를 필터링 할 수 있습니다.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>

</span><span><span class="hljs-variable">$integers</span></span><span> = [];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$array</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-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_int</span></span><span>(</span><span><span class="hljs-variable">$item</span></span><span>)) {
        </span><span><span class="hljs-variable">$integers</span></span><span>[] = </span><span><span class="hljs-variable">$item</span></span><span>;
    }
}

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$integers</span></span><span>);

</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

6. 결론

IS_INTARRAY_FILTER를 결합하여 배열에서 모든 정수 값을 쉽고 효율적으로 필터링 할 수 있습니다. 이 방법은 데이터를 신속하게 정리하고 필터링 해야하는 시나리오에 이상적입니다. Array_Filter는 깨끗한 구문을 제공하지만 배열이 특히 큰 경우 Foreach 루프가 더 나은 성능을 제공 할 수 있습니다. 일반적으로 올바른 도구와 방법을 선택하면 코드의 효율성과 가독성을 향상시킬 수 있습니다.